0CTF Web题目分析

0CTF的周末因为各种各样的事情,去调研还去挖了土,导致没有能够好好的做题,最后只剩不到半天,把分最低的sqli做了,后面听各种师傅说这次的题特别是两道xss都出的很好,有时间了做个总结,有空就更新。

simplesqlin

简单的盲注,fuzz跑一下就知道过滤了很多东西包括select,再fuzz的时候发现select中插入%0b就可以绕过waf,然后就是简单的盲注套路,但是不知道是早上7点没到就出去调研冻傻了还是怎么的后面py跑flag的时候字典忘了加大写字母的ascii,得出的flag长度不对懵逼了好久。

出题师傅的话是这道题主要提醒框架会对安全带来的影响,ci框架会对提交的数据进行过滤,去除ascii大于某个数的不可见字符,从而造成waf bypass,而框架的特性很多人都不会去考虑。

integrity

python的crypto题目,详细的分析我在上一篇文章讲了,硬知识的考量。

Temmo’s Tiny Shop

周六早上刚开的时候看了一下,刚开始进去的时候随便注册什么账号都是4W还是8W的钱,进去直接什么都买了一遍,其中的hint是一个select,给出了表名,就知道肯定是某处有注入,然后就出门了。。。周日晚上再看的时候发现已经没有那么多钱了,还窃喜前面拿到了hint,结果后面怎么注都注不出,就放弃了。

首先登陆进去是一个购买页面,每个东西都是一条hint,首先给出周六早上的所有hint

有两条hint提到了flag,其中第一条的意思很明显,给出了表名,给出了提示:存在注入点,第三条hint的意思就有点隐晦了,在你用餐结束的时候来一个咸布朗尼和一杯咖啡,看到商品目录里有布朗尼价值2200,但是没有咖啡,先买个布朗尼,然后找注入点,在fuzzing字段order的时候会返回 WAF seems don’t like you. 猜测这里就是注入点。继续fuzz order字段,发现select, having, like, if, limit, length这些都没有被过滤,可以直接用if构造查询:

被过滤,查看fuzz出的可用符号,发现括号可以使用,用括号构造:

死都注不出来,GG

后来看wupco师傅的wp发现是修复了开始hint的问题后把表名也改了。。。然后就是一个条件竞争买hint + sql盲注的题了。

Complicated XSS

这道题很有趣,根域是government.vip,有一个子域是admin.government.vip,根域可以随意提交payload,子域登陆后cookie中的Username也可以提交payload,但是子域有沙盒限制。

这样就可以有个大致的思路,同源策略的影响下这两个域名的cookie是可以共享的,因此我们可以在根域设置一个带有payload的cookie然后让bot带着这个cookie去访问子域,从而执行payload。