表达式注SRC挖掘

极客

表达式注入SRC挖掘:嘿,这破站居然能白嫖漏洞?我直接裂开!

兄弟们,姐妹们,今天咱不聊虚的,就唠唠我最近在SRC(安全响应中心)挖洞时撞上的“表达式注入”这档子事儿,哎哟,你是不知道,这玩意儿简直就像你家门锁上贴了张纸条,写着“密码是123456”,你信不信?我反正是信了,而且还真就顺着这纸条撬开了好几扇门,那感觉,啧啧,比夏天灌一瓶冰阔落还爽!

啥是表达式注入?别整那些听不懂的黑话!

咱就是说,很多站长为了图省事儿,喜欢在后台搞点“高级功能”,比如让用户输入个公式,系统自动算个积分、算个运费、生成个报表啥的,这背后的逻辑,大概率就是用了个表达式解析引擎,比如Spring的SpEL、Java的OGNL、Python的eval(),或者JavaScript的eval()。

注意了啊!这地方就是“重灾区”,你说你一个简简单单的输入框,我不输入数字,我输入个${7*7},结果页面直接给我弹个49出来,哎哟,这不就露馅儿了吗?这就像你问AI“1+1等于几”,它不光告诉你等于2,还非得把整个计算过程用脚趾头给你演一遍,你说搞笑不搞笑?

我跟你讲,我第一次挖到的时候,整个人是懵的,我当时正蹲在某个众测平台的角落,像个老六一样翻着他们的“企业信息查询”页面,那输入框挺正经的,写的“请输入企业税号”,我手贱,输了个${99999*99999},结果页面回显的不是“无此企业”,而是那一串算出来的数据!那一刻,我CPU都烧了,心跳直接飙到180,这不比玩过山车刺激多了?

挖这玩意儿,到底图个啥?

还能图啥?图它一个“越权”的快感呗!你想想,表达式注入能干啥?往小了说,能读个配置文件、探个路径;往大了说,能直接执行系统命令!咱就说,当你在输入框里;ls -la;,结果服务器把根目录文件列表甩你脸上时,那感觉,就像你朝深渊喊了一嗓子,结果深渊回你一句“我在呢,亲~”,这谁顶得住?

上次我就碰上个贼离谱的站点,一个导出Excel的功能,文件名参数居然能被SpEL表达式解析,我直接构造了一个T(java.lang.Runtime).getRuntime().exec('whoami'),虽然没回显,但我用DNSlog一测,好家伙,域名上“biaji”一声就来了个解析记录,当时我就乐了,这站子的防护等级,基本等于拿卫生纸糊的防火墙,一戳一个洞。

别高兴太早,坑也多着呢!

你以为表达式注入是随便输个payload就能打穿的?那你也太小看SRC的难度了。得找反射点,你得确认输入的到底进没进那个危险的eval(),你辛辛苦苦输了个${1+1},结果人家前端直接给你过滤了,或者后端做了个黑名单,看到Runtime就给你劈成两半,你说气不气人?

我记得有次我蹲了一个下午,就为了绕过那个“半残废”的WAF(Web应用防火墙)——它把javax给禁了,但没禁java.lang,把exec给禁了,但没禁processBuilder,我当时脑子一抽,就用new java.lang.ProcessBuilder('id').start()构造了一个,嘿,还真绕过去了!那一刻,我感觉自己就像那个在雷区里跳芭蕾的舞者,每一步都踩在刀尖上,但就是没炸,那滋味,绝了!

收尾了,说点掏心窝子的话

挖表达式注入,说白了就是跟开发人员玩“心理战”,你得摸清楚他们图省事儿在哪儿引入了表达式解析,然后像闻着血腥味的鲨鱼一样扑过去。但记住喽,咱们是挖洞,不是砸场子。 在SRC平台上,挖到漏洞一定要写清楚原理和利用链,别学那些野路子,拿着payload到处乱打,容易把自己打进去。

最后教大家一个偷懒的小技巧:看到任何有“计算”、“转换”、“模板”、“预览”功能的输入框,先别急着掏字典,先丢一个${7*7}过去,要是它傻乎乎地给你回显“49”,恭喜你,银行已到账,请查收漏洞

嘿,说得我都渴了,要是你也对网络安全这块感兴趣,想学点真东西,无论是想搞SRC还是想防被人搞,都可以加我的QQ 2790915869(悄悄告诉你,验证消息填“挖洞”,通过率更高哦!)。

表达式注SRC挖掘

好了,今天就唠到这儿,我得赶紧去翻翻昨天那个还没交报告的漏洞了,不然奖金该被人家抢走了,溜了溜了,祝各位道友下个季度SRC排名登顶!咱们江湖见!

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

目录[+]

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