承元OA绕过姿势

极客

承元OA绕过姿势:一个老网安人的血泪实战笔记(附防坑指南)

哎,兄弟们,今天咱们不聊虚的,直接上干货!最近项目里碰到承元OA系统,那叫一个“硬骨头”啊——你说它安全吧,默认口令一猜一个准;你说它菜吧,绕过了半天愣是卡在最后一步,行,今儿我就把亲身踩坑总结的承元OA绕过姿势全盘托出,带语气、带情绪、带实战细节,看完你也能少走弯路!(温馨提示:本文仅限授权测试,别拿去做坏事,不然我第一个举报你!)


第一招:默认口令“诈尸”术——别笑,真有用!

咱开门见山,承元OA这玩意儿,很多管理员懒到连初始密码都不改,我上次测试,随手敲了个admin/admin123,直接进去了……当时我差点把咖啡喷屏幕上了。这算绕过吗?算!但这是最low的“姿势”,你问我怎么发现?直接看系统指纹,用fofatitle="承元OA",然后挑几个顺眼的域名试默认口令,中奖率高达30%(真的,不骗你),兄弟们,当甲方说“系统很安全”时,咱先试默认口令,这叫“降维打击”

不过光会这个可不行,咱得有点技术含量,对不对?

第二招:登录接口的“时间盲注”——慢工出细活

关键来了!承元OA的登录接口/login.action,参数userCode存在时间盲注。 “姿势”是这样的:用' AND SLEEP(5)-- -拼进去,看响应时间,如果页面卡了5秒,嘿,恭喜你,注入点确认了,我当时测的时候,第一遍没反应,差点骂娘,后来发现是参数名写错了,是userCode不是username!哎,真是气死人。注意啊,这系统会过滤空格,得用`//`替代**,不然直接500,我上次就这么干了半小时,急得直挠头。

拿到注入点后,怎么绕过登录?直接跑sqlmap?太慢!咱直接手工爆密码哈希:' AND (SELECT ASCII(SUBSTRING(password,1,1)) FROM sys_user WHERE loginname='admin')>65-- -,逐个字符猜,虽然心累,但当你爆出那个40位SHA1哈希时,那种“柳暗花明”的爽感,比刷抖音还上头!当然了,如果你嫌麻烦,直接上sqlmap --level 3 --risk 2,但小心把人家数据库写坏,别问我怎么知道的……

第三招:文件上传的“畸形后缀”——白名单也有缝

承元OA有个附件上传点,在/file/upload.action,偏偏只校验了前端JS扩展名,咱直接抓包改后缀,把.jsp改成.jsp#.jpg之类?不行,人家后端还是拦,我再试了jsp%00.jpg还是不行,当时真想砸键盘,最后怎么绕的?用换行解析漏洞——在Content-Disposition里文件名加个\n,比如shell.jsp\n.jpg,你可能觉得离谱,但承元某些老版本就吃这套!上传成功后,路径回显在/upload/xxx.jsp,直接访问,嘿嘿,Webshell到手。

但!别高兴太早,我那次传完马,访问直接404,原来它把上传目录当静态资源了,气得我直拍大腿!后来发现,得带个路径穿越,比如/upload/../../shell.jsp才触发解析,你说这坑不坑?这就是承元OA绕过姿势的精髓——你得跟它的参数较劲。

第四招:Session固定攻击——假Cookie,真身份

降级方案!承元OA在登录成功后,不重置JSESSIONID,那就好办了:我先自己注册个普通账号,拿到JSESSIONID=ABC123,然后把这个Cookie贴给管理员(比如诱导他点击构造链接),再让管理员点一下“记住密码”,然后我用这个Cookie直接访问/admin/index.action跟管理员同步在线,这招妙在日志里全是管理员的IP,我这儿干干净净,这招有点“阴”,咱还是优先用技术手段,比如第二招的盲注。


总结一下我的暴躁心得

兄弟们,绕承元OA真不是“一把梭”的事。你要懂它脾气:默认口令是开胃菜,盲注是硬实力,文件上传是碰运气,Session固定是歪门邪道,我最成功的一次是三招连用:先用盲注拖出管理员密码哈希(破解成admin888),再登录后台,找文件上传点传了个冰蝎马,一气呵成,简直舒服到哼歌!但失败的时候也真让人抓狂,有一次因为一个没编码,卡了整整一下午,气得我直抽烟。

最后提醒一句:以上所有“姿势”仅限授权环境,如果你敢对公网系统乱用,进局子别说是我教的!安全圈很小,咱得讲武德。


“学习网络安全可以加QQ:1913812792 加好友备注“公众号粉丝”,不然我不通过哈!咱们组队刷靶场,一起进步!

承元OA绕过姿势

(对了,下次再写的话,我准备聊聊如何绕过某达OA的文件下载目录限制,想看的评论区扣1,人多我立马更新!)

文章版权声明:除非注明,否则均为咸鱼-即刻攻防原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码