第十七关:
我们会发现这里有用户名,我们依靠这个用户名进行注入点测试操作
我们发现在password那有单引号注入
我们先用Order by 1#来看看列数
查看不了列数,如果我们要利用联合查询的话只能利用order by看有多少列数,再根据列数去写语句。这里查看不了列数,所以我们用报错注入来查看
利用报错注入即可获取数据库,数据表,列以及值
代码审计一波:
uname被放入了check_input函数里
passwd并没有进行什么操作
Check_input()的作用是过滤单引号以及进行数字类型的转换,验正输入的值是否为空,所以刚才我们在unam那里加单引号测试注入点并没有起作用。
第十八关:
代码审计,发现passwd uname都被check_input()函数所修饰,不能加单引号测试,(其他的比如”’) ”)))都不行
这是条插入语句,插入了uagent这个数据,但是源代码对uagent并没有进行过滤
登录成功的界面如下:
这里回显了IP 以及 User-Agent, 所以我们使用User-Agent注入
利用BP抓包(只有成功登录才有)
这里我们修改User-agent 并且输入单引号测试,会发现报错
因为吧user-agent插入了数据库,我们只需要闭合$uagent前后的单引号即可。
这样的话就得到了数据库的名字
通关成功
第十九关:
先进行代码审计:
这里赋予uagent的值为referer
同时插入了referer
那我们就可以在referer上做文章
在referer上加单引号测试
说明存在注入点,那么利用报错注入即可
通关成功
第二十关:
我们发现cookie被传入了库中,并且进行了查询
在cookie处测试
其他步骤都是一样的
通关成功
第二十一关:
这里我们发现cookie 进行了base64位编码
经过转换发现:
我们先判断闭合方式:
回显正常,换成(‘1’)=(‘2 :
报错
那么注入方法跟之前就是一样的,多了编码的步骤
爆出了数据库,通关成功
第二十二关:
先进行代码审计:
又进行了base64位编码
同时Cookie值放入数据库中。
这里经过测试,注入点为”
其他步骤跟二十一关是一样的: