本文为看雪论坛精华文章
看雪论坛作者ID:零加一
1
漏洞挖掘
基本信息
首先进行端口扫描,发现仅开了23和80。
telnet 连接23端口发现如果输入的用户名不对都会断开连接。
浏览器进行登录然后抓包,获取可以用做定位的字符串。
通过文件搜索,可以定位到jhttpd。
首先是mem_init_fun()函数,其中三个函数是负责初始化http可以访问到的请求以及对应的处理函数:httpd_file_init、httpd_file_ext_init、httpd_cgi_ext_init。
接着继续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。

登录提交,发现返回的是一个也类似md5的字符串。
最后查看httpd_cgi_user_check_admin函数,发现他返回的居然是jhl_realm_str的md5,并且会将新的md5覆盖到jhl_realm_str?
这什么操作没看懂,后门?
所以攻击方法只需要将他返回的md5进行一次加密拿来提交即可。
登录成功。
命令注入
请求的接口为/httpd_debug.asp?time=
payload=ping -c 2 192.168.92.128

payload=echo I'm Wowfk
其中还存在许多栈溢出、命令执行等漏洞
2
总结
看雪ID:零加一
https://bbs.pediy.com/user-home-749276.htm
# 往期推荐
球分享
球点赞
球在看
点击“阅读原文”,了解更多!
原文始发于微信公众号(看雪学苑):某系统漏洞挖掘之授权绕过到rce
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论