md5解密网站源码-记住一次颠簸的渗透测试

0x01开始

我拿到了网站,其中一项资产就是单位的办公系统。 看界面比较老旧,感觉是个笑话

使用的系统是九思oa,先搜索发布的poc看看能不能玩

找到了两个,试了也没有用,于是我把所有资源都扔进awvs里扫描,抱着试试看能不能发现什么的态度。

发现这里有sql注入,sleep语句可以执行,于是去抢个包,尝试用sqlmap进行穿梭

python sqlmap.py -r 1.txt --dbs

我发现跑不下来,想找出原因,于是就去手动测试一下。

进入admin时提示用户没有维护邮箱,但是用户应该存在

添加'我发现错误提示没有该用户信息

添加#号后,和单独输入admin是一样的,这就证明存在sql注入。 通过模糊,发现它过滤了空格。

尝试使用sqlmap的temp脚本绕过

python sqlmap.py -r 1.txt --tamper=space2comment -dbs

果然成功了

0x02 继承

想通过sql注入注入账号密码

jsdb暴露后md5为12345678,root暴露后md5为jiusi

用御剑扫描它的端口,发现它的数据库端口没有开放,只能下定决心,寻找其他思路

尝试写个webshel​​l进入,也失败,权限不够,不知道绝对路径

然后尝试写出网站的账户密码,登录试试看是否可以getshell。

这时候md5解密网站源码,问题又来了。 我们不知道账户密码在哪张表,而且由于是盲注入,所以速度比较慢。 一张oa有几百个表,一张表有几十个数组,一一尝试已经来不及了。 ,此时再次陷入深深的危机。

0x03转

我们继续扫描单位站点,发现单位还有一个测试九思oa站点,端口开放为3306。我们猜测前面记下的数据库密码九思就是数据库的密码。

使用Navicat直接连接,发现表结构如下

有上百个表(幸好没有盲注入),通过表的结构,构造出对应的sql语句(使用sqlmap的sql-shell执行),成功注入管理员和其他用户的账号密码,数据库的密码不是以明文形式存储的。

注意是 39 位字符的字符串,而不是 md5。 分析后端代码发现是先用md5加密,然后交给前端处理。 前端肯定又加密过了。 我在网上找到了oa的部分源码

发现逻辑如下md5解密网站源码,先截取10到15个字符,后面添加随机生成的字符,再截取0-5个字符,然后生成随机字符添加到前面,以此类推。 通过逆向算法,可以得到如下结果。 需要放弃固定位数,然后重新拼出字符串,得到对应的md5值。

然后尝试泄露md5,但遗憾的是,管理员的md5没有被破解,而一些普通用户的密码被破解,然后登录。

0x04 关闭

进入oa,查看是否有上传点,尝试上传,发现过滤了.jsp文件后缀,而且是白名单上传。 我尝试了好几种坐姿,但都绕不过去。

通过指纹识别,发现其使用了ewebeditor组件,并搜索该组件的漏洞。

尝试用默认密码登录,发现可以进入,图片类型添加一个jsp,尝试上传

上传成功

rce成功,则上线CS漫游外网

礼貌地跟随

关注公众号回复“9527”即可获得一套HTB射击场文档和视频、“1208”个人高效爆破词典、“0221”2020望京文章包、“2191”潇湘新安文章包、“ 1212》反软件对比源码+数据源,《0421》Windows加壳工具包。

你在等什么? 赶紧点击下方名片关注学习吧!

推荐阅读