首页
社区
课程
招聘
[原创]【从0到1】-某系统漏洞挖掘之授权绕过到rce
2021-12-10 16:37 35505

[原创]【从0到1】-某系统漏洞挖掘之授权绕过到rce

2021-12-10 16:37
35505

昨晚睡前都在传Log4j然而与我没有一点关系。

睡醒的我又觉得行了,书接上文开始进行漏洞挖掘。

漏洞挖掘

基本的信息

首先进行端口扫描,发现仅开了23和80。

telnet 连接23端口发现如果输入的用户名不对都会断开连接。

浏览器进行登录然后抓包,获取可以用做定位的字符串。

通过文件搜索,可以定位到jhttpd

通过main函数入手

首先是mem_init_fun()函数,其中三个函数是负责初始化http可以访问到的请求以及对应的处理函数:httpd_file_init、httpd_file_ext_init、httpd_cgi_ext_init

示例如下,httpd_all_file指向了一个结构体,包含了可以访问的权限、接口名等信息,编写脚本解析dump出该地址指向的所有接口

接着继续dump httpd_file_ext_init和httpd_cgi_ext_init中的所有请求。这两个函数的结构跟httd_all_file的有所不同,但都包含了一样的信息。

当http请求的东西初始化完调用httpd_sever_init开始监听80端口


最后调用http_poll函数开始处理用户的http请求

对于get请求则让httpd_dowith_get函数去处理

post请求则根据请求的名hash去获取对应的处理函数经过httd_check_user校验权限后判断是否调用相应的处理函数。

了解了该程序的http服务大概的流程,接下来就是分析哪个请求的处理存在问题即可。

授权绕过

登录是绕不过的问题,如何弄到一个帐号呢?
先看登录函数,通过之前的抓包可以看到请求是/login.cgi,那么对应的函数是login_cgi

我们并没有传入type这个参数,那么就来到了这里

在httpd_cgi_user_check函数中,发现多数的帐号都是通过配置读取的,但存在一个内置的帐号Wowfkrouteradmin
通过他修改过的md5函数对jhl_realm_str(此时为空)进行加密后和传入的也是md5的密码进行对比。

如果校验不成功返回-1,在回到上层login_cgi中。是-1会从httpd_cgi_user_check_admin中获取一个字符串并返回前端

将他的md5扣出来自己弄加密

登录提交,发现返回的是一个也类似md5的字符串

最后查看httpd_cgi_user_check_admin函数,发现他返回的居然是jhl_realm_str的md5,并且会将新的md5覆盖到jhl_realm_str???
这什么操作没看懂,后门?


所以攻击方法只需要将他返回的md5进行一次加密拿来提交即可

登录成功.....

命令注入

登录成功后,通过查找对system的引用找到了最好利用的httpd_debug_asp接口,由于没有对参数过了,直接调用了sprintf进行格式化字符串,导致可以进行命令注入(也存在栈溢出....)

请求的接口为/httpd_debug.asp?time=
payload=ping -c 2 192.168.92.128
构造payload提交

payload=echo I\'m Wowfk

其中还存在许多栈溢出、命令执行等漏洞

总结

来一张fofa的暴露资产搜索图

emmm就挺离谱的吧


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2021-12-10 16:40 被零加一编辑 ,原因:
收藏
点赞10
打赏
分享
最新回复 (12)
雪    币: 3906
活跃值: (5533)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
badboyl 2 2021-12-10 16:45
2
0
坐了一次老醒的沙发。
雪    币: 269
活跃值: (410)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
*笑容* 2021-12-10 16:54
3
0
继续支持大佬
雪    币: 12589
活跃值: (14295)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
wmsuper 7 2021-12-10 17:05
4
0
恐怖如斯
雪    币: 2155
活跃值: (2542)
能力值: ( LV12,RANK:667 )
在线值:
发帖
回帖
粉丝
梦游枪手 2021-12-10 17:07
5
0
带我挖洞.jpg
雪    币: 1820
活跃值: (2405)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
哦哈哈哈哈 2021-12-10 19:38
6
0
踩一踩
雪    币: 179
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_hgrbqfun 2021-12-10 23:02
7
0
有些函数怎么弄到符号的,还是它的程序就是带的dll导出的符号吗
雪    币: 2035
活跃值: (4880)
能力值: ( LV13,RANK:278 )
在线值:
发帖
回帖
粉丝
零加一 3 2021-12-10 23:11
8
0
mb_hgrbqfun 有些函数怎么弄到符号的,还是它的程序就是带的dll导出的符号吗
是的,程序自带的符号
雪    币: 3010
活跃值: (3510)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
执着的追求 1 2021-12-13 17:56
9
0
我去,这产品也太不重视安全了。还是说目前固件设备的情况都这样?
雪    币: 2179
活跃值: (177)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
apaoa 2021-12-27 17:21
10
0
写得挺好的,就是有点烂
雪    币: 2035
活跃值: (4880)
能力值: ( LV13,RANK:278 )
在线值:
发帖
回帖
粉丝
零加一 3 2021-12-27 17:24
11
0
apaoa 写得挺好的,就是有点烂
烂点在哪里呢,麻烦指正
雪    币: 203
活跃值: (528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
咸湿小和尚 2022-1-8 20:04
12
0
文件搜索工具叫啥
雪    币: 9
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
izeroo 2023-4-15 16:06
13
0
应该是某meng的设备,大佬太猛了,我看半天没看出来路由和函数的对应关系,原来是在结构体里边的啊
游客
登录 | 注册 方可回帖
返回