暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于sql注入os-shell分析

破军安全实验室 2021-12-20
2800

破军安全实验室


    忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等

本文约1700字,阅读约需5分钟。


0x00 --os-shell条件



  1. 当前用户具备文件读写权限;

  2. 函数secure_file_priv的值不为NULL,及允许数据导入导出;

  3. 有写权限的绝对路径;

实际情况下还有一些其他因素,这里就不再说明了。


0x01 环境准备


我们利用mysql5.5.29作为服务器环境,测试靶场采用sqli-labs,高版本的修改配置文件路径为,mysql安装目录的my.ini,在文件中的[mysqld]添加secure_file_priv = ' '。

0x02 os-shell流程分析




使用sqlmap注入并将数据发送到burp suite,前面的注入直接忽略,我们到os-shell这一步。

sqlmap获得注入点之后,我们使用参数--os-shell可获取到系统交互shell,执行该命令中途主要需要两个点:

1、选择正确的系统语言。

2、之后是网站的根路径。



网站路径设置的四个选项解释:
选项1:这是默认的选项,他会根据后面括号里面的绝对路径尝试文件写入,具体我们可以看一下执行情况;



选项2:这里是自定义路径,在某些情况下你可能提前知道了网站的根路径,就可以选用2,然后填入绝对路径;

选项3:这里是使用你自己定义的字典,导入字典尝试;

选项4:这里调用sqlmap定义的字典进行尝试;

这里我们直接指定网站根路径,我这里抓包是显示累计8个数据包。



0x03 os-shell数据包分析




现在我们对数据包进行分析:
第一个包是执行sqlmap后,对目标地址的请求,确认网站是否正常访问。
第三个包对目标进行文件写入,这里sqlmap使用的是LINES TERMINATED BY写入webshell。


第四、五、六个数据包都是在确认上传文件的路径,确认是否上传成功。



文件tmpufkcg.php主要是用来上传文件的。



然后第七个数据包构造后面文件,通过第六个包确认的上传功能进行上传。


最后一个包对上传的文件进行命令测试,然后sqlmap返回交互式shell。



0x04 总结




通过对整个流程的解析不难发现,sqlmap的交互式shell是先上传一个任意文件上传的后门,再上传由几个命令执行函数构成的后门文件来生成交互式shell。

到这里有个简单思路,实际环境中我们有很多时候是拿到交互式shell之后执行命令存在问题,并不能执行相关命令,这时我们可以利用sqlmap的第一个后门文件上传小马,使用蚁剑等工具进行连接(手工注入上传太麻烦,适合我这种比较懒的)。这里尝试了一下

这里可以看到文件被正常上传解析。



使用蚁剑进行连接,成功连接。


同时我们发现了被写入网站根目录下的两个后门文件,经过查找,发现在执行os-shell之前,对应网站目录下还有一个txt文件


渗透的注意事项也来了,os-shell界面有一句提示“ calling OS shell. To quittype 'x' or 'q' and press ENTER”,告诉你调用os-shell结束后使用x+enter或q+enter退出,这样退出的目的是为了删除上传的两个后门文件,如果不这样退出,后门文件会被保留。老实说我最初的时候真的没有注意这一句话,直接就给叉掉。。。。。

可以看到提示,已清除文件。



然后我们查看burp suite,可以发现多了两个del的数据包。



查看网站根目录,文件确实被清除,只存在我上传的一句话。



但是对应注入页面目录下的txt文件是没有被清除的,可能是对系统基本没有影响所以没有清除吧。



整体流程概述大概这些,其中可能存在一些问题,还请各位大佬多多指点。


 声明

    由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,破军安全实验室及文章作者不为此承担任何责任。

    破军安全实验室拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经破军安全实验室允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。


破军安全实验室

# 长按二维码 关注我们 #



文章转载自破军安全实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论