这是我真正意义上来说做的第一道SQL题目,感觉从这个题目里还是能学到好多东西的,这里记录一下这个题目的writeup和在其中学到的东西
link
:https://www.ichunqiu.com/battalion Web分类下的SQL
进入这个模拟环境之后,会得到一个提示为flag在数据库中,这时候查看url栏可以发现
嗯这个就有SQL注入内味了,然后试一下id=2或者id=3,发现id=2时候可以出来提示为test,然后再往后就什么都不出来了,这时候我先假装id后面的东西是一个数字变量,输入id=1 and 1=1
,发现网页给出提示是这是SQL注入代码,这说明这个网站是有对SQL注入做基本的防护的,所以现在的问题就变成了如何绕过服务器的过滤规则。
对这些的绕过一般的操作是
id=1 && 1=1
,发现并没有报错,这说明我们成功进行了注入的第一步。这时候我们可以发现,很有可能该数据库仅对我们展示了表中某一列的数据,所以现在就要判断这个表到底有几列,这里使用的方法是order by
。url里输入id=1 order by 1
,报错提示这是sql注入代码,所以现在要进行进一步的绕过select
变为SELect
(本题中没用)/*!...*/
中,例如/*!order*/
(本题中没用)replace()
函数,因此可以输入selselectect
,在经过waf处理后变为select
(本题中没用)/**/
,\``,
(),
回车`等进行代替原文:https://www.cnblogs.com/wangyanzhong123/p/12748192.html