专栏名称: CTFer的魔法棒
CTFer的魔法棒,你的CTF参赛指南。 查看比赛日程、学习竞赛相关知识应有尽有
目录
相关文章推荐
自贡网  ·  虎虎我啊,劝你别信“网红偏方” ·  7 小时前  
四川日报  ·  报!哪吒2,95亿!!! ·  昨天  
四川发布  ·  立春后却更冷了?!“倒春寒”来了? ·  2 天前  
四川发布  ·  早安四川丨漆彩流年 ·  2 天前  
51好读  ›  专栏  ›  CTFer的魔法棒

每天一道CTF(1) JarvisOJ Web Simple Injection

CTFer的魔法棒  · 公众号  ·  · 2017-12-06 19:02

正文

今天立下一个flag,每天一道CTF题,坚持30天,然后再看看要不要继续。

题目

很简单的注入,大家试试?

题目入口:http://web.jarvisoj.com:32787/

题目来源:ISCC2016

题解

注入点

首先题目就是注入,所以自然就想到往登陆框里注入。使用hackbar发送post包,进行注入。

首先先输入一个引号,发现提示用户名错误。而输入引号加一个注释符#,就提示密码错误。所以用户名这里一定存在注入。

利用

猜测是通过用户名查询密码,然后如果查不出行就提示用户名错误,如果查出了且密码匹配不对,就提示密码错误。

尝试构造ORDER BY子句来获取字段长,然而一直报用户名错,就是语句中有错了。这里就能猜到,可能用户名过滤了空格。

使用语句

username=admin123'UNION(SELECT(1))#&password=123

报密码错,因此语句执行成功。通过UNION SELECT得到的行被视作密码。然而尝试把密码改为1提交,并不正确,猜测后端使用MD5加密后进行比较。因此构造以下语句:

username=admin123'UNION(SELECT(md5(123)))#&password=123

通过控制查询到的MD5值,再输入一个匹配的密码使其登陆成功。

得到FLAG







请到「今天看啥」查看全文