[第十届大学生信息安全竞赛](web)flag vending machine (by l3m0n)

已获作者授权,原文地址:

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。


比赛写的时候一直死磕都没死磕出来,发现自己还是太菜了,不能复现,有点难受。

也提醒我牢记一点:

理清思路,思考后台语句,提交的参数与数据库交互的地方都有可能产生注入

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容