想要实时流量分析和数据包记录功能吗? Snort 可以鼎力支持你。即使它是一个开源的入侵防御系统,也有很多东西可以提供。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
1、生还渔民清楚描述了被撞击翻船,两人游出来,两人遇难。
2、金门地检署调查显示台船有“碰撞”我方渔船。
3、关键五分钟没有录像(合力推测录像被隐藏)。
4、事发水域不存在实际的分界线,金门本县有议员称台海巡部门为民进党控制,此次事件非本地意愿。
------
事发后,也有红客获取台方出勤人员名单,其中为首的巡查人员,拥有两家渔业公司,具备利益动机。
至今民进党当局都未有有效说法,依旧在狡辩。台军方人事表示不宜介入。
那么接下来只要金门海巡出动,我方执法船只即可登船稽查。如对方拒绝临检,当即撞沉,以彼之道还彼之身。甚至为了我方人员安全,直接撞了拖回来问也一样。
行政对行政,海军在一边看就好了,台伪军不动,PLA不必动。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
2、金门地检署调查显示台船有“碰撞”我方渔船。
3、关键五分钟没有录像(合力推测录像被隐藏)。
4、事发水域不存在实际的分界线,金门本县有议员称台海巡部门为民进党控制,此次事件非本地意愿。
------
事发后,也有红客获取台方出勤人员名单,其中为首的巡查人员,拥有两家渔业公司,具备利益动机。
至今民进党当局都未有有效说法,依旧在狡辩。台军方人事表示不宜介入。
那么接下来只要金门海巡出动,我方执法船只即可登船稽查。如对方拒绝临检,当即撞沉,以彼之道还彼之身。甚至为了我方人员安全,直接撞了拖回来问也一样。
行政对行政,海军在一边看就好了,台伪军不动,PLA不必动。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
默认账号密码:thanos/thanos123.com登录后台,在快照管理处存在下载功能点
下载文件打包成压缩包下载
如上,疑似存在下载漏洞,跟进路由
如上,先找到类级别的路径位置,注解表示由/rest/monitor/snapshots根路径发起的请求均会被该类处理
随后再找到方法级别的路由位置,download的post请求均会被该方法处理:
可见该方法接收了前面数据包传输的参数filename,并赋值给snapshotname参数。
分析如上代码存在以下路径:
Path:根路径,由system.getProperty/temp/download组成
snapshotRootPath:由path/snapshotname组成。
随后进入AgentUtil.receiveFileOrDir()进行目标文件压缩,下载,且此处未进行任何校验
下载文件打包成压缩包下载
如上,疑似存在下载漏洞,跟进路由
如上,先找到类级别的路径位置,注解表示由/rest/monitor/snapshots根路径发起的请求均会被该类处理
随后再找到方法级别的路由位置,download的post请求均会被该方法处理:
可见该方法接收了前面数据包传输的参数filename,并赋值给snapshotname参数。
分析如上代码存在以下路径:
Path:根路径,由system.getProperty/temp/download组成
snapshotRootPath:由path/snapshotname组成。
随后进入AgentUtil.receiveFileOrDir()进行目标文件压缩,下载,且此处未进行任何校验
这个命名方式,大概率是Rust语言
对于rust语言逆向,一般采用动态调试分析的方法
主要还是看汇编,因为F5根本看不出来啥东西。。。
从if比较处,可以看到成功和失败两个结果
那么这个比较绝对很关键
进入后发现,啥也没啊?
坏了,得看汇编,为代码估计又出问题了
发现了check2,果然为代码啥也看不到
对比check1-2
发现是在检测输入的字符串的字符类型,还是冲突的,不管了继续分析
下面可以看到失败
往下滑动可以看到成功
后面都是正常输出flag了
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
对于rust语言逆向,一般采用动态调试分析的方法
主要还是看汇编,因为F5根本看不出来啥东西。。。
从if比较处,可以看到成功和失败两个结果
那么这个比较绝对很关键
进入后发现,啥也没啊?
坏了,得看汇编,为代码估计又出问题了
发现了check2,果然为代码啥也看不到
对比check1-2
发现是在检测输入的字符串的字符类型,还是冲突的,不管了继续分析
下面可以看到失败
往下滑动可以看到成功
后面都是正常输出flag了
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
绕过安全狗的sql注入:
这里先解决一下绕过安全狗的方式,在常见的方式中,我们都采用垃圾字符填充的方式来绕过安全狗,虽然效果很好,但是较为复杂,也容易出现被狗咬伤的情况,所以为了解决这一现状,小秦同学翻阅之后发现了分块传输的方式来绕过安全狗。但是分块传输目前来看只能适用于post请求。get请求还是比较难说。
以sql-labs为例:
在sqli-labs的第十一关,我们发现了可以用post请求。先正常看看过滤哪些字符,这里开门见山,直接把'union select (database()),2#。这个东西进行了过滤
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
这里先解决一下绕过安全狗的方式,在常见的方式中,我们都采用垃圾字符填充的方式来绕过安全狗,虽然效果很好,但是较为复杂,也容易出现被狗咬伤的情况,所以为了解决这一现状,小秦同学翻阅之后发现了分块传输的方式来绕过安全狗。但是分块传输目前来看只能适用于post请求。get请求还是比较难说。
以sql-labs为例:
在sqli-labs的第十一关,我们发现了可以用post请求。先正常看看过滤哪些字符,这里开门见山,直接把'union select (database()),2#。这个东西进行了过滤
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
STRUTS2的getClassLoader漏洞利用
在struts2任何一个action运行之前,一旦接受到用户提交参数xx=zzzzz时,就由Ognl负责调用对应的当前action的setXxx方法,至于set方法到底是干什么的,其实不重要,里面的逻辑也不重要,我们只关注这个方法调用了,参数传递了。这种对属性的改变,有时候是可以很大程度的影响后续复杂逻辑。
Object是java的基础类,所有的class生成的对象,都会继承Object的所有属性和方法,因此当前action无论是什么代码,必须有Object自带的getClass方法,这个方法会返回一个Class对象,Class对象又一定会有getClassLoader方法,最终在每个action都可以
上传webshell的可能性研究
多次的远程代码执行漏洞洗礼,我一直在脑海里模拟“ServletContext被控制了,这次能干什么”,究竟有哪些路线,可以通往代码执行的领域。
比如:Struts2会去servletContext里取到一个值,然后把它作为Ognl执行掉。这个太简单了,我自己都不信。
Ognl的Context树形结构
servletContext被转换成Map,变成了图中的application子项,这个位址很尴尬,如果是上一层Node,从上到下找到value Stack,确实有实现这个思路的可能,但现在看来,这条路断了,它不支持找到父节点。
任何一个Action的classLoader都是org.apache.catalina.loader.WebappClassLoader,这是漏洞的源头。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
在struts2任何一个action运行之前,一旦接受到用户提交参数xx=zzzzz时,就由Ognl负责调用对应的当前action的setXxx方法,至于set方法到底是干什么的,其实不重要,里面的逻辑也不重要,我们只关注这个方法调用了,参数传递了。这种对属性的改变,有时候是可以很大程度的影响后续复杂逻辑。
Object是java的基础类,所有的class生成的对象,都会继承Object的所有属性和方法,因此当前action无论是什么代码,必须有Object自带的getClass方法,这个方法会返回一个Class对象,Class对象又一定会有getClassLoader方法,最终在每个action都可以
上传webshell的可能性研究
多次的远程代码执行漏洞洗礼,我一直在脑海里模拟“ServletContext被控制了,这次能干什么”,究竟有哪些路线,可以通往代码执行的领域。
比如:Struts2会去servletContext里取到一个值,然后把它作为Ognl执行掉。这个太简单了,我自己都不信。
Ognl的Context树形结构
servletContext被转换成Map,变成了图中的application子项,这个位址很尴尬,如果是上一层Node,从上到下找到value Stack,确实有实现这个思路的可能,但现在看来,这条路断了,它不支持找到父节点。
任何一个Action的classLoader都是org.apache.catalina.loader.WebappClassLoader,这是漏洞的源头。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
Zabbix SQL Injection
该漏洞存在于httpmon.php脚本中,未登录用户也可访问。
这是由于Zabbix预先设定了一个guest用户,未登录用户都被设定为guest用户的访问权限。
如果guest用户被禁用,将不能访问httpmon.php脚本,利用该漏洞。
可以在管理员的管理面板中禁用guest用户。
从下图中可以看出来applications参数存在sql注入。
进入了$application变量中,跟踪add2favorites函数
进入$values数组的value_id中,再往下跟踪就可以发现变量没有经过任何过滤进入到sql语句中
变量处理经过了一层mysql_real_escape_string函数的过滤。
在上面那个漏洞中,下面的语句可以读取管理员的用户名与密码md5的hash值
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
该漏洞存在于httpmon.php脚本中,未登录用户也可访问。
这是由于Zabbix预先设定了一个guest用户,未登录用户都被设定为guest用户的访问权限。
如果guest用户被禁用,将不能访问httpmon.php脚本,利用该漏洞。
可以在管理员的管理面板中禁用guest用户。
从下图中可以看出来applications参数存在sql注入。
进入了$application变量中,跟踪add2favorites函数
进入$values数组的value_id中,再往下跟踪就可以发现变量没有经过任何过滤进入到sql语句中
变量处理经过了一层mysql_real_escape_string函数的过滤。
在上面那个漏洞中,下面的语句可以读取管理员的用户名与密码md5的hash值
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
控制端获取当前已经上线主机信息接口:/getlive
控制端要得到当前主机存活信息就要构造如下请求信息
请求头:
{"pwd":密码加密后MD5值}
身份验证成功后即可如图得到响应的信息
控制端向服务器发布任务接口:/addtask
该接口依赖 ./lib/baseser.py 中的 add_task() 方法
当控制端发送下发任务请求时,该接口会检查控制端的密码,然后根据控制端提供木马唯一ID进行ID合法性校验,校验成功后就会将 cmd 里密文进行解密后与该木马的唯一ID进行绑定,木马请求下载 Payload 时就根据其自身的ID获取对应的任务
控制端要构造如下请求头
{"pwd":MD5加密的密码,"key":木马唯一身份ID,"cmd":base64密文}
base64密文:{"sleeptime": "", "cdm": "你要执行的命令"}
成功则响应状态码为 200
响应正文:{"info":发布成功或失败的提示信息}
处理控制端要删除某台上线主机的接口:/killhost
该接口依赖 ./lib/baseser.py 中的 del_host_info() 方法
当控制端请求该接口时,首先会校验控制端提供的密码是否合法,然后校验提供的木马唯一ID值是否合法,校验成功后,就会根据其提供的木马的唯一ID值来清除服务器存储的木马的唯一ID值和其ID绑定的 AES 秘钥
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
控制端要得到当前主机存活信息就要构造如下请求信息
请求头:
{"pwd":密码加密后MD5值}
身份验证成功后即可如图得到响应的信息
控制端向服务器发布任务接口:/addtask
该接口依赖 ./lib/baseser.py 中的 add_task() 方法
当控制端发送下发任务请求时,该接口会检查控制端的密码,然后根据控制端提供木马唯一ID进行ID合法性校验,校验成功后就会将 cmd 里密文进行解密后与该木马的唯一ID进行绑定,木马请求下载 Payload 时就根据其自身的ID获取对应的任务
控制端要构造如下请求头
{"pwd":MD5加密的密码,"key":木马唯一身份ID,"cmd":base64密文}
base64密文:{"sleeptime": "", "cdm": "你要执行的命令"}
成功则响应状态码为 200
响应正文:{"info":发布成功或失败的提示信息}
处理控制端要删除某台上线主机的接口:/killhost
该接口依赖 ./lib/baseser.py 中的 del_host_info() 方法
当控制端请求该接口时,首先会校验控制端提供的密码是否合法,然后校验提供的木马唯一ID值是否合法,校验成功后,就会根据其提供的木马的唯一ID值来清除服务器存储的木马的唯一ID值和其ID绑定的 AES 秘钥
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
❤1
在struts2任何一个action运行之前,一旦接受到用户提交参数xx=zzzzz时,就由Ognl负责调用对应的当前action的setXxx方法,至于set方法到底是干什么的,其实不重要,里面的逻辑也不重要,我们只关注这个方法调用了,参数传递了。这种对属性的改变,有时候是可以很大程度的影响后续复杂逻辑。
Object是java的基础类,所有的class生成的对象,都会继承Object的所有属性和方法,因此当前action无论是什么代码,必须有Object自带的getClass方法,这个方法会返回一个Class对象,Class对象又一定会有getClassLoader方法,最终在每个action都可以
上传webshell的可能性研究
多次的远程代码执行漏洞洗礼,我一直在脑海里模拟“ServletContext被控制了,这次能干什么”,究竟有哪些路线,可以通往代码执行的领域。
比如:Struts2会去servletContext里取到一个值,然后把它作为Ognl执行掉。这个太简单了,我自己都不信。
Ognl的Context树形结构
servletContext被转换成Map,变成了图中的application子项,这个位址很尴尬,如果是上一层Node,从上到下找到value Stack,确实有实现这个思路的可能,但现在看来,这条路断了,它不支持找到父节点。
任何一个Action的classLoader都是org.apache.catalina.loader.WebappClassLoader,这是漏洞的源头。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
Object是java的基础类,所有的class生成的对象,都会继承Object的所有属性和方法,因此当前action无论是什么代码,必须有Object自带的getClass方法,这个方法会返回一个Class对象,Class对象又一定会有getClassLoader方法,最终在每个action都可以
上传webshell的可能性研究
多次的远程代码执行漏洞洗礼,我一直在脑海里模拟“ServletContext被控制了,这次能干什么”,究竟有哪些路线,可以通往代码执行的领域。
比如:Struts2会去servletContext里取到一个值,然后把它作为Ognl执行掉。这个太简单了,我自己都不信。
Ognl的Context树形结构
servletContext被转换成Map,变成了图中的application子项,这个位址很尴尬,如果是上一层Node,从上到下找到value Stack,确实有实现这个思路的可能,但现在看来,这条路断了,它不支持找到父节点。
任何一个Action的classLoader都是org.apache.catalina.loader.WebappClassLoader,这是漏洞的源头。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang