0x00概述:
安鸾靶场地址:
https://www.whalwl.com/home
整理了简单的三个模拟实景渗透的过程
0x01正文:
场景1:Discuz
靶场环境打开页面左下角就是版本,使用一些常见的漏洞就可以直接打进去(百度一大把)
因为是靶场练习,最终的目的是要flag,所以用一个远程代码执行的。
漏洞简述:
Discuz远程代码执行漏洞存在于cookie的language可控并没有进行严格的过滤,从而导致了可以进行远程代码执行;Discuz系统对cookie中的l接受的language参数内容未过滤,导致了字符串拼接,从而导致可以执行php代码。
影响的版本:
Discuz 3.2 3.3 3.4
抓包进行测试一下
看到返回phpinfo();
接着就是构造一个webshell写进网站的的文件夹里面(和刚才写phpinfo差不多)
然后去网站访问一下,查看是否上传成功
返回空白,应该是传上去了,使用蚁剑进行连接尝试
然后就可以看到flag的文件
场景2:简单的文件上传
场景打开就直接可以进入后台登录
全部点了一遍,发现上传点
不可以直接上传php文件,抓包修改一下,就是简单的前端绕过
改一下
上传成功之后,右键查看一下地址,然后蚁剑进行连一下就可以
场景3:综合渗透(sql+上传+提权)
*flag在根目录*
打开首页
寻找注入点,到处点点,然后是在联系界面找到注入点
?r=content&cid=1
flag是在根目录的,所以光是sql注入肯定不得行,所以就要使用sql语句上传一个shell到网站的后台,然后再使用工具进行连接到后台去查看flag
寻找写shell的文件位置,利用mysql的函数,使用sqlmap
逐个去查看这些文件的配置信息,一般的网页的配置文件差不多是“httpd.conf”
文件的默认路径是/etc/httpd/conf/httpd.conf
用刚才想同的查询语法,替换要查看文件的路径
sqlmap -u "http://106.15.50.112:8023/?r=content&cid=17" --dbms "mysql" --file-read "/etc/httpd/conf/httpd.conf" --technique U
可以再httpd.conf里面看见网页文件存放的文件路径
知道了文件上传的路径,使用sql语句进行上传shell文件到这个文件夹内
http://106.15.50.112:8023/?r=content&cid=-1%20and(1)UNION SELECT 1,2,3,4,5,6,7,8,9,10,,12,13 into outfile "/var/www/html/whalwl/zxt.php"
看到上传成功,然后就是蚁剑连接,
无法直接查看,因为权限不够
使用udf提权
udf提权的文章
https://www.freebuf.com/articles/web/283566.html
先在kali的sqlmap这个工具的路径下找到.so_文件
然后再使用另一个文件夹里面的cloak.py给这个文件解码
python cloak.py -d -i lib_mysqludf_sys.so_
得到so文件
和一开始文件上传一样,需要知道上传的路径
在这个文件里面找到了数据库登录的信息
然后连接数据库,执行sql语句查询路径
在这个路径上传so文件,随便改个名字
然后返回到数据库,执行sql语句
create function sys_eval returns string soname 'aaa.so';
可以看到成功,然后就可以接着执行sql语句查看flag
select sys_eval('cat /flag')
- End -
原文始发于微信公众号(NS Demon团队):安鸾靶场渗透练习
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论