web服务器分层架构的资源文件映射安全
通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等!
例如:Nginx+ Tomcat的分层结构(在下文中,我们也使用此例说明相关问题)
Nginx是一个高性能的 HTTP 和 反向代理 服务器 。
通常,我们是通过它来解决一些静态资源(如:图片、js及css等类型文件)访问处理。
classes目录(包含该应用核心的java类编译后的class文件及部分配置文件)
lib目录(所用框架、插件或组件的架包)
web.xml(重要的配置文件,它是开启攻击的一把钥匙,后面会讲到它)
以及其他自定义目录之文件
所以,它是j2ee应用一个非常重要的目录!
如果Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身一些缺陷影响)。从而导致通过Nginx访问到Tomcat的WEB-INF目录(请注意这里,是通过Nginx,而不是Tomcat访问到的,因为上面已经说到,Tomcat是禁止访问这个目录的。)。
造成这一情况的一般原因:是由于Nginx访问(这里可以说是均衡负载访问配置问题)配置不当造成的。通常,我们只会让Nginx把这些访问后缀的URL交给Tomcat,而这些后缀与j2ee及开发框架(或自定义框架)有关
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等!
例如:Nginx+ Tomcat的分层结构(在下文中,我们也使用此例说明相关问题)
Nginx是一个高性能的 HTTP 和 反向代理 服务器 。
通常,我们是通过它来解决一些静态资源(如:图片、js及css等类型文件)访问处理。
classes目录(包含该应用核心的java类编译后的class文件及部分配置文件)
lib目录(所用框架、插件或组件的架包)
web.xml(重要的配置文件,它是开启攻击的一把钥匙,后面会讲到它)
以及其他自定义目录之文件
所以,它是j2ee应用一个非常重要的目录!
如果Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身一些缺陷影响)。从而导致通过Nginx访问到Tomcat的WEB-INF目录(请注意这里,是通过Nginx,而不是Tomcat访问到的,因为上面已经说到,Tomcat是禁止访问这个目录的。)。
造成这一情况的一般原因:是由于Nginx访问(这里可以说是均衡负载访问配置问题)配置不当造成的。通常,我们只会让Nginx把这些访问后缀的URL交给Tomcat,而这些后缀与j2ee及开发框架(或自定义框架)有关
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
攻击方式及危害
这种情况相信大家早已碰到过,但可能没有深入去关注过它,而且该问题还比较普遍存在一些大型站点应用中。由于j2ee应用一些自身特点,导致发生此情况时,它很容易受到攻击,如:
web.xml配置文件,它是j2ee配置部署应用的起点配置文件,如果能够先访问到它,我们可以再结合j2ee的xml路径配置特点
根据web.xml配置文件路径或通常开发时常用框架命名习惯,找到其他配置文件或类文件路径。
反编译类后,再根据关联类文件路径,找到其他类文件。
如此下来,我们就可以获得整个应用几乎的所有核心代码及应用架构的相关信息等。
然后,我们再根据j2ee应用分层结构的流程或路线,很容易查找到应用中的一些逻辑、sql注射、XSS等相关漏洞
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
这种情况相信大家早已碰到过,但可能没有深入去关注过它,而且该问题还比较普遍存在一些大型站点应用中。由于j2ee应用一些自身特点,导致发生此情况时,它很容易受到攻击,如:
web.xml配置文件,它是j2ee配置部署应用的起点配置文件,如果能够先访问到它,我们可以再结合j2ee的xml路径配置特点
根据web.xml配置文件路径或通常开发时常用框架命名习惯,找到其他配置文件或类文件路径。
反编译类后,再根据关联类文件路径,找到其他类文件。
如此下来,我们就可以获得整个应用几乎的所有核心代码及应用架构的相关信息等。
然后,我们再根据j2ee应用分层结构的流程或路线,很容易查找到应用中的一些逻辑、sql注射、XSS等相关漏洞
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
数据劫持
在一个可控的网络环境里,劫持数据有很多方法。比较有名的网络层抓包工具有wireshark,tcpdump,都是很好的网络协议分析工具。我们现在手机上的大多数APP应用层都是使用的HTTP协议,因此我们很多的在web安全测试里面用到的分析工具如fiddler,burp,httpanalyzer,Charles等也都是可以用来分析或者劫持APP的通信流。
攻击构想
如果我们手机里的app默认会进行很多敏感的请求,譬如微博会自动去登陆和获取最新的微博;如果我们的手机默认会链接周围已经被保存sid的wifi;那么我们为什么不能做一个在地铁上使用的可以抓取周围的人的微博认证信息的wifi呢?通过内置最常见的sid和信息,我们可以使得周围的人会自动链接上我们的wifi,通过抓取相应的数据取得里面的敏感信息我们理论上是可以劫持他的微博的
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
在一个可控的网络环境里,劫持数据有很多方法。比较有名的网络层抓包工具有wireshark,tcpdump,都是很好的网络协议分析工具。我们现在手机上的大多数APP应用层都是使用的HTTP协议,因此我们很多的在web安全测试里面用到的分析工具如fiddler,burp,httpanalyzer,Charles等也都是可以用来分析或者劫持APP的通信流。
攻击构想
如果我们手机里的app默认会进行很多敏感的请求,譬如微博会自动去登陆和获取最新的微博;如果我们的手机默认会链接周围已经被保存sid的wifi;那么我们为什么不能做一个在地铁上使用的可以抓取周围的人的微博认证信息的wifi呢?通过内置最常见的sid和信息,我们可以使得周围的人会自动链接上我们的wifi,通过抓取相应的数据取得里面的敏感信息我们理论上是可以劫持他的微博的
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
❤2
软件方面,可以选择的嵌入式系统很多,比较常见的有DD-WRT、OpenWRT和AirSnarf等。这里推荐OpenWRT,网上关于OpenWRT的文档非常 全面,可定制性也比较强。它是一个比较精简的linux发行版,系统要求非常低,所以非常适合我们的要求。下面是它的官网wiki。
刷完openwrt官方固件,为了便于管理可以添加个web端的管理界面,在openwrt里,比较成熟的就是luci。可以利用opkg直接安装,opkg是一个轻量快速的套件管理系统,目前已成为opensourse界嵌入式系统标准。常用于路由、交换机等嵌入式设备中,用来管理软件包的安装升级与下载。
将结果dump到本地,0x4745 为"GET"前两个字母"GE",0x4854 为"HTTP"前两个字母"HT"。 注意:tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序(如Wireshark)进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。 图是test.cap在wireshark中的展现。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
刷完openwrt官方固件,为了便于管理可以添加个web端的管理界面,在openwrt里,比较成熟的就是luci。可以利用opkg直接安装,opkg是一个轻量快速的套件管理系统,目前已成为opensourse界嵌入式系统标准。常用于路由、交换机等嵌入式设备中,用来管理软件包的安装升级与下载。
将结果dump到本地,0x4745 为"GET"前两个字母"GE",0x4854 为"HTTP"前两个字母"HT"。 注意:tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序(如Wireshark)进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。 图是test.cap在wireshark中的展现。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
关于TRACERT和TTL
利用TTL 判断GFW,或者一些奇怪设备的位置,特做一个实验,看一下TTL 及TRACERT 。 TRACERT 大概的原理,就是通过发送不断+1 的TTL(TIME TO LIVE)的ICMP REQUEST到达最终设备,最后由最终设备返回ICMP REPLY(中间经过的设备返回的都是ICMP超时---|||||ICMP TIME EX)实现
证明我和GOOGLE 服务器距离17跳。PING GOOGLE (IP地址变了,但TTL 还是43)
基本上确定43+17=61 (google服务器的TTL 好像是61:从另一个国外linux PING 和tracert
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
利用TTL 判断GFW,或者一些奇怪设备的位置,特做一个实验,看一下TTL 及TRACERT 。 TRACERT 大概的原理,就是通过发送不断+1 的TTL(TIME TO LIVE)的ICMP REQUEST到达最终设备,最后由最终设备返回ICMP REPLY(中间经过的设备返回的都是ICMP超时---|||||ICMP TIME EX)实现
证明我和GOOGLE 服务器距离17跳。PING GOOGLE (IP地址变了,但TTL 还是43)
基本上确定43+17=61 (google服务器的TTL 好像是61:从另一个国外linux PING 和tracert
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
❤2
struts漏洞在现在看来实在太无技术含量,对于漏洞源头,就不需解释太多 在查询端口的时候,agent的10050端口会与server的通讯。(在有proxy的情况下zabbix_server不太确认) 确认zabbix_server为:172.24.162.38 一般在安装的时候会留下zabbix_agent的安装脚本,详细信息可以到脚本里面看到 ifconfig ip信息如下(这个是作为入侵到更多服务器的跳板)
只有内网,首先要确认思路,在没有外网IP的情况下,用IPtables做一个nat完全不能达到我们想要的需求,因为zabbix我们需要用IEl来访问,只能先做内网的nat,然后把端口转到公网的某个服务器上去 先确认些信息
确认好上面的一些信息后,接下来做一个nat
看下效果 这里会监听98端口,意思是当有访问本地98端口的时候自动转向172.24.162.38的80端口,接下来只需要将本地的98端口转发至公网的某个服务器就可以正常访问了
端口转发我用lcx(linux版),这破玩意会经常断,不太好用。
转发好之后就可以正常访问了
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
只有内网,首先要确认思路,在没有外网IP的情况下,用IPtables做一个nat完全不能达到我们想要的需求,因为zabbix我们需要用IEl来访问,只能先做内网的nat,然后把端口转到公网的某个服务器上去 先确认些信息
确认好上面的一些信息后,接下来做一个nat
看下效果 这里会监听98端口,意思是当有访问本地98端口的时候自动转向172.24.162.38的80端口,接下来只需要将本地的98端口转发至公网的某个服务器就可以正常访问了
端口转发我用lcx(linux版),这破玩意会经常断,不太好用。
转发好之后就可以正常访问了
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
PostgreSQL的那点事儿
今天无意发现了个PostgreSQL环境,一般的数据注射(读写数据库)差异不大,不做讨论,个人比较关心PostgreSQL的文件读取和命令执行方面。
0x00 文件读取/写入
PostgreSQL 8.1 以后提供了一组现成的文件操作函数
pg_logdir_ls()、pg_ls_dir()、pg_file_rename()、pg_file_write()、 pg_read_file()、pg_length_file()
用这些就可以胡作非为了?你错了。。。
可以用这个函数直接读取/etc/passwd?实际情况下测试并未成功,因为pg_xxx这个adminpack将权限限制在了./postgresql/data下面。
还有个写文件函数测试并未成功,而且只能像data下写也是满足不了需求的。
利用注射修改偏移值很快就可以遍历出来了,但是还是有点寒碜,直接读出全部数据
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
今天无意发现了个PostgreSQL环境,一般的数据注射(读写数据库)差异不大,不做讨论,个人比较关心PostgreSQL的文件读取和命令执行方面。
0x00 文件读取/写入
PostgreSQL 8.1 以后提供了一组现成的文件操作函数
pg_logdir_ls()、pg_ls_dir()、pg_file_rename()、pg_file_write()、 pg_read_file()、pg_length_file()
用这些就可以胡作非为了?你错了。。。
可以用这个函数直接读取/etc/passwd?实际情况下测试并未成功,因为pg_xxx这个adminpack将权限限制在了./postgresql/data下面。
还有个写文件函数测试并未成功,而且只能像data下写也是满足不了需求的。
利用注射修改偏移值很快就可以遍历出来了,但是还是有点寒碜,直接读出全部数据
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
❤3