Pass-01
前端JS绕过
写个一句话木马,将后缀改为能上传的形式,上传用burpsuite抓包,看repeater,go,将后缀再改为php,go,用中国蚁剑,添加数据,url为 靶场的url/upload/文件名.php(response里找),密码为木马中post里的内容,测试连接,成功后双击打开找根目录下的flag
ctfshow web入门文件上传151
与上题类似,必须为图片格式,注意放包后再测试连接
文件上传之htaccess
less-2
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
要求上传图片,先用以下指令使jpg被解析为php
再传入含一句话木马的图片
最后用蚁剑连接
问题:返回数据为空,尚未解决
https://blog.csdn.net/luminous_you/article/details/110874523?utm_source=app&app_version=4.20.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
JS绕过
less-1
文件上传
web入门151、152
直接抓包修改后缀
web入门153
用.user.ini直接上传图片马连接
web入门154(过滤php)
先上传.user.ini.png(只允许上传png格式图片)
抓包修改为.user.ini放包上传成功
再上传图片马,为php过滤不可用,可改为Php放包(不用改文件名)
蚁剑连接即可url/upload/index.php(默认)
找到根目录下得到$flag="ctfshow{7e86e0a5-76d9-4e17-b9a5-4d712cdba0a1}";
(改为)
web入门155(短标签绕过)
等价于
其他同154,还是先上传.user.ini
web入门156(过滤[])
将[]改为{}即可
其他同上
web入门157、158
过滤了[] ; {} php
用system函数查看源代码
这一级没内容可看上一级
因为php被过滤,用*(可当所有)
ls列出了所有发现上一级有flag
cat ../flag为查看上一级的flag.*文件
..代表上一级目录
~代表home目录
-代表前一目录
system()函数,执行本机命令
再url/upload/直接右键看源代码即可(火狐从源码转为系统代理可避免重新发送)
web入门159
过滤更多了,[] {} () ; php system
用反引号命令绕过
反引号代替system命令
还是在上一级看到了flag
cat不行用tac
访问url/upload/index.php即可
cat命令 由第一行开始显示内容并将内容输出
tac命令 由最后一行倒序显示内容并将所有内容输出
web入门160(日志包含)
.user.ini(注意:文件名与上传马的文件名要一致)
因为过滤了log所以用拼接的方式
在user-Agent处插入一句话木马
总结:
1.直接上传加几种过滤
2.命令执行访问查看
3.日志包含
web入门161
文件头+日志包含
在所有上传的文件中都加上文件头GIF89A
文件上传的方法、思路:
1.直接上传图片马加几种过滤
·图片马,抓包改后缀,蚁剑
·各种过滤:php [] {} ; 空格 system →.user.ini htaccess
一句话木马被过滤,用二分法检测(截一半)
2.命令执行访问查看 system 反引号``
注意:flag不一定在根目录里,直接访问url/upload/
3.日志包含
user-Agent插入一句话木马
4.复杂脚本
web入门162
题目描述:姿势挺多的啊?啊?
session文件包含+条件竞争
条件竞争:上传的文件如果不符合要求,就会被删除,导致成功上传无法访问,但是如果我们上传的速度比服务器删的速度快,就可以了。
文件头GIF89A,.user.ini内容为
GIF89A
auto_prepend_file=/tmp/sess_1
注:sess_ 后面的内容是自己写别忘了
再上传png,内容为
GIF89A
再用脚本跑即可
import requests
import threading
import re
session = requests.session()
sess = '1' #之前上传时自拟的名字
url1 = "http://5ff5f5d6-f012-4fc5-9c05-3bcdce101384.challenge.ctf.show/"
url2 = "http://5ff5f5d6-f012-4fc5-9c05-3bcdce101384.challenge.ctf.show/upload"
data1 = {
'PHP_SESSION_UPLOAD_PROGRESS': ''
}
file = {
'file': '1' #文件名,随便改就行
}
cookies = {
'PHPSESSID': sess
}
def write(): #上传文件竞争过程
while True:
r = session.post(url1, data=data1, files=file, cookies=cookies)
def read():
while True: #每次竞争完都访问一下url/uoload看有没有flag
r = session.get(url2)
if 'flag' in r.text:
flag=re.compile('ctfshow{.+}') #我在做题的时候flag格式已经改成ctfshow{}了
print(flag.findall(r.text))
threads = [threading.Thread(target=write),
threading.Thread(target=read)]
for t in threads:
t.start()
据知,ctfshow不支持,无法完成。
163题情况同上
web入门164
题目描述:改头换面
图片二次渲染
写脚本跑出来一图片马
上传
array后面的内容就是一句话木马,二进制加密了
访问图片上传地址,抓包
由于木马内容GET[0] POST[1]
imagepng($img,'2.png'); //要修改的图片的路径(可按此代码修改) /* 木马内容 $_GET[0]($_POST[1]);?> */
在POST后面加上/download php?image=4a47a0db6e60853dedfcfdf08a5ca249.png&0=system
在下面
1=whoami
进入了www-data
再直接用命令即可
web入门165
jpg图片二次渲染
改头换面2.0太麻烦看教程吧
web入门166
限制zip格式
先传个压缩包,用010editor在文件尾加上一句话,再上传
web入门167
上传.htaccess文件,限制了.jpg上传文件右键检查,改代码
lay-data="{url: 'upload.php', accept: 'images',exts:'jpg'}"
改为lay-data="{url: 'upload.php', accept: 'file'}"
内容为AddType application/x-httpd-php .png
上传png图片马,蚁剑连
注意Content-Type格式内容改为image/jpeg
.htaccess是Apache的php配置文件 ,主要的作用有:URL重写、自定义错误页面、MIME类型配置以及访问权限控制等。主要体现在伪静态的应用、图片防盗链、自定义404错误页面、阻止/允许特定IP/IP段、目录浏览与主页、禁止访问指定文件类型、文件密码保护等。
web入门168
题目描述:基础免杀
传一张正常png图片,抓包改后缀php,访问url/upload/文件名
直接在repeater里文件尾执行命令
在上一级发现flagaa.php
ls / 最上
ls . 当前
ls ../ 上一级
执行命令
web入门169、170(大致思路)
lay-data="{url: 'upload.php', accept: 'images',exts:'zip'}
虽然限制了zip类型但传不上去,因为有images,改为
lay-data="{url: 'upload.php', accept: 'images',exts:'png'
用.user.ini传,用日志包含
POST里=phpinfo(); phpinfo显示整个php信息,检测能否传命令
POST里=system('tac ../flagaa.php');
附说明:最后几题成功率较低,整的自己不好受,主要了解大致思路及相关知识点