2020.09.21
经验教训
- python中,post的内容是json格式;
- SVN 源码泄露漏洞,就是有个
.svn
目录,.svn/wc.db
,大量用户数据,.svn/entries
,能遍历网站目录,隐藏文件.svn/.svn-base
源代码文件副本- 获取网站目录结构,可以直接在存在.svn的目录下加/.svn/entries来获取;
- 获取源代码内容。如获取conf.php文件的内容可以在目录下加上/.svn/text-base/conf.php.svn-base来进行下载。
- 源码漏洞扫描可以发现上边的svn源码泄漏漏洞,还有其他源码漏洞可以参考这里,有什么好的漏洞扫描器??
- php的conf文件中是有一个正则的后缀名限制的,只要符合都可以被当做php文件执行。符合的后缀包括 php、php3、php4、php5、phtml、pht 等。
- 文件上传主要抓包修改三个地方,两个content-type,一个文件后缀名。
- python中,引入多线程的文件头是
from multiprocessing.dummy import Pool as ThreadPool
,基本操作是poolList = getPoolList() pool = ThreadPool() pool.map(checkMd5,poolList) pool.close() pool.join()
upload
https://www.ichunqiu.com/battalion
- 意思很明确,post消息头中的东西
ZmxhZ19pc19oZXJlOiBNVEkwTmpNeA==
,base64解码后为flag_is_here: MTI0NjMx
,后半截还能继续base64,124631
- 按照要求post了,但是没啥结果,所以仔细一看,我发现每一次消息头中的数字会变化
- 因为他说要快一点,那么写个脚本试试
#!/usr/bin/env python 3.8
# -*- encoding: utf-8 -*-
#fileName : decry.py
#createTime: 2020/09/21 09:52:41
#author : 乔悟空
#purpose : 此脚本用于向特定网站快速发送post请求
import base64
import requests
url = "http://d9ee784d8d8e422295f9736111306dc1b68a202e84904630.changame.ichunqiu.com/"
session = requests.session()
res = session.get(url).headers['flag']
print(res)
res = base64.b64decode(res).decode().split(': ')[1]
print(res)
res = base64.b64decode(res).decode()
print(res)
res = session.post(url,data={'ichunqiu':res}).text
print(res)
- 得到结果
Path:3712901a08bb58557943ca31f3487b7d
,这看起来像是一个md5编码,解码试试?
- 解码结果是
98123hasd
,访问发现404;
- 然后试了试没解码之前的,成功进入……