ctfshow web入门文件上传

Pass-01

前端JS绕过

写个一句话木马,将后缀改为能上传的形式,上传用burpsuite抓包,看repeater,go,将后缀再改为php,go,用中国蚁剑,添加数据,url为 靶场的url/upload/文件名.php(response里找),密码为木马中post里的内容,测试连接,成功后双击打开找根目录下的flag

ctfshow web入门文件上传_第1张图片

ctfshow web入门文件上传151

与上题类似,必须为图片格式,注意放包后再测试连接

文件上传之htaccess

less-2

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能

要求上传图片,先用以下指令使jpg被解析为php

ctfshow web入门文件上传_第2张图片

再传入含一句话木马的图片

ctfshow web入门文件上传_第3张图片

最后用蚁剑连接

ctfshow web入门文件上传_第4张图片

问题:返回数据为空,尚未解决

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

ctfshow web入门文件上传_第5张图片

文件上传

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}";

(改为)

ctfshow web入门文件上传_第6张图片

ctfshow web入门文件上传_第7张图片

web入门155(短标签绕过)

等价于

其他同154,还是先上传.user.ini

web入门156(过滤[])

将[]改为{}即可

其他同上

ctfshow web入门文件上传_第8张图片

web入门157、158

过滤了[] ; {} php

用system函数查看源代码

这一级没内容可看上一级

因为php被过滤,用*(可当所有)

ctfshow web入门文件上传_第9张图片

ls列出了所有发现上一级有flag

cat ../flag为查看上一级的flag.*文件

..代表上一级目录

~代表home目录

-代表前一目录

system()函数,执行本机命令

ctfshow web入门文件上传_第10张图片

再url/upload/直接右键看源代码即可(火狐从源码转为系统代理可避免重新发送)

web入门159

过滤更多了,[] {} () ; php system

用反引号命令绕过

反引号代替system命令

还是在上一级看到了flag

cat不行用tac

访问url/upload/index.php即可

cat命令 由第一行开始显示内容并将内容输出

tac命令 由最后一行倒序显示内容并将所有内容输出

web入门160(日志包含)

.user.ini(注意:文件名与上传马的文件名要一致)

ctfshow web入门文件上传_第11张图片

因为过滤了log所以用拼接的方式

在user-Agent处插入一句话木马

总结:

1.直接上传加几种过滤

2.命令执行访问查看

3.日志包含

web入门161

文件头+日志包含

在所有上传的文件中都加上文件头GIF89A

ctfshow web入门文件上传_第12张图片

ctfshow web入门文件上传_第13张图片

文件上传的方法、思路:

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

题目描述:改头换面

图片二次渲染

写脚本跑出来一图片马

上传

ctfshow web入门文件上传_第14张图片

array后面的内容就是一句话木马,二进制加密了

访问图片上传地址,抓包

改为POST模式(右键变更请求方法)ctfshow web入门文件上传_第15张图片

由于木马内容GET[0] POST[1]

imagepng($img,'2.png'); //要修改的图片的路径(可按此代码修改) /* 木马内容 */ctfshow web入门文件上传_第16张图片

在POST后面加上/download php?image=4a47a0db6e60853dedfcfdf08a5ca249.png&0=system

在下面

1=whoami

进入了www-data

再直接用命令即可

ctfshow web入门文件上传_第17张图片

 ctfshow web入门文件上传_第18张图片

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');

附说明:最后几题成功率较低,整的自己不好受,主要了解大致思路及相关知识点

你可能感兴趣的:(WEB,前端,其他,网络)