已获作者授权,原文地址:
http://www.cnblogs.com/iamstudy/articles/2017_quanguo_ctf_web_writeup.html
0x00 题目分析
逻辑是注册用户 -> 登陆 -> 购买
注册的时候有waf,会过滤某些字符为空,比如on,select等
开始没注意,导致登陆的时候会经常出现点莫名其妙的问题
购买的时候,我猜可能是先通过商品的id查询出价钱,然后再从session里面获取用户名,直接update去扣除用户钱包里面的钱,其中从session取值的时候没有做过滤,虽然前面都做了。
0x01 脚本
0x02 个人分析 总结
这题是一个多步盲注,并不是我们常见的那种一步提交参数,就会有回显的那种。
按流程来,注册,登录。
我们注册可能产生注入的用户名,形如 xx'-1-1#,或者 xxx' || 1 #,原题过滤了哪些就不清楚了。
注册登录都没有问题,就是在购买的时候,从session里面把用户名取出来,然后和后台数据库进行交互购买,也就是这个时候产生了注入。
中间那个1的位置,就是我们的盲注语句的位置。为真的时候,购买成功。
还有一个过滤问题,过滤了on等敏感字,可以通过双写绕过,形如 oonn。
比赛写的时候一直死磕都没死磕出来,发现自己还是太菜了,不能复现,有点难受。
也提醒我牢记一点:
理清思路,思考后台语句,提交的参数与数据库交互的地方都有可能产生注入
网友评论