南邮ctf 综合题2

ctf是从南邮ctf开始刷的,web题很多,也很适合入门。这道题是以前刷剩下的,感觉还是挺综合的。wp写得很详细,希望和我一样入门不久的小白能看懂。

题目链接:http://cms.nuptzj.cn/index.php

打开题目,划掉抖机灵的部分,有一个搜索框,一个留言板,最下面还有一个CMS说明文件。搜索框可能存在sql注入,留言板可能存在xss(不过题目中强调了不存在xss那应该是可以不考虑了)先点进CMS说明看看。

sm.txt

读出源码

在说明中介绍了几个文件的作用以及sql表的结构,看到sql表结构啦就猜测大概率有sql注入了。不过,观察地址栏的时候发现

?file=sm.txt   是否存在文件包含漏洞?,试试用php://filter读源码

太棒啦,读出来了,赶紧把所有源码都读出来。根据cms说明中文件的介绍,可以锁定有config.php(后面读出about.php时知道过滤了)、passencode.php、say.php、index.php。在源码中又发现antixss.php。这时候就发现了这几个文件,读出来后简单审计了一下,发现xss是不大可能,不过在about.php中发现了敏感目录loginxlcteam,不能读出来,直接输入地址栏试试,

进去了,后台登录?有没有sql注入?输入admin会提示密码长度不正确,输入其他用户名则会提示用户名不存在,前几天做到好几个这种类型的布尔盲注,以为又碰到了,马上尝试,怎么都注入不了,突然想到主页还有一个搜索框还没尝试注入。

刚跳转到页面,看到地址栏

http://cms.nuptzj.cn/so.php

wc,这玩意源码还没读呢,赶紧读出来,读到源码又发现antiinject.php,一并读出。

SQL注入

so.php关键代码
antiinject.php代码

可见虽然$id被mysql_real_escape_string了,不过sql语句的id本来就是数字型的,并不需要引号。下面antiinject函数,虽然过滤了很多关键字,不过是替换为空,双写就能绕过,空格就用/**/绕过。好开始注入

首先爆个数据库试试:

soid=2/**/uniunionon/**/seselectlect/**/1,database(),3,4

注入结果

好!我们继续注入。

这里我走了一个坑= =,我们前面说过那个cms说明中提示了表结构,有admin表,表中有username和userpass字段,然而我忘记了。而且cms说明中说了information表好像无法检索,我执意朝着那边注入。

事实证明是可以检索information表的,只是。。。

soid=2/**/uniunionon/**/seselectlect/**/1,group_concat(table_nanameme),3,4/**/frfromom/**/infoorrmation_schema.tables/**/where/**/table_schema/**/like/**/0x7361652d6578706c6f6974626c6f67

注入结果

你们也看到了,information中也有一个or。。。所以也得双写。。。

不废话直接查admin表

soid=2/**/uniunionon/**/seselectlect/**/1,usernanameme,userpapassss,4/**/frfromom/**/adadminmin

显而易见密码像是ascii码,查出是fuckruntu。

放到上面找到的后台试试,登进去了


利用后门

读出xlcteam.php源码

四处查了下,发现是p牛以前分享过的回调后门,乌云镜像文章:http://wooyun.jozxing.cc/static/drops/tips-7279.html

&www=preg_repalce,密码wtf 连接菜刀,但是没有连上,一度以为是我连接方式不正确,看到其他师傅的wp都是这么连的,那么估计是出题人后来禁止了(后来尝试似乎system、exec等函数也禁了)。直接用后门

payload
结果

直接输入到地址栏就能拿到flag,nctf{you_are_s0_g00d_hacker}

总结,前期收集信息真的很重要,而且不能钻牛角尖(在后台注入了一个多小时的我瑟瑟发抖T_T).

发表评论

电子邮件地址不会被公开。 必填项已用*标注