- 博客(15)
- 收藏
- 关注
原创 idekctf复现
环境docker有问题,没有办法进行第二步操作所以就跟着wp直接看代码复现一下吧首先访问/just-read-it进入justReadIt我们只要运行到程序的最后就可以拿到flag先接收来自post传入的json数据解析保存到reqData中在下面可以发现接收来自“Orders”的int数据后面初始化了一个reader可以看到randomData是由initRandomData初始化的在最后发现password复制在了12625之后。
2023-01-21 14:53:08 294
原创 祥云杯2022复现
这个CVE的漏洞就是不需要公钥以及私钥就能构造出jwt的认证,稍作修改就可以更改:将里面的sub=bob改成is_admin=1然后拿出来输出一下。而我们点击页面的各种功能提示都是权限不够,那么这里也就是需要构造is_admin=1,在jwt这个版本更新之后,留下了检测是否存在漏洞的poc。苦于没有环境,我就只能口述了,利用graphql注入,注入出账号密码,最终登陆拿到flag。我这里只复现一下这个jwt伪造了,grahql只能纸上谈兵的看看了并不能实操。抓包的时候有一串jwt,解码出来之后可以看到。
2022-11-13 16:24:50 1065
原创 2022强网拟态web复现
很明显又看到在进行反序列化的时候进行了对含有private类名的替换以及还原,但是如果我们恶意构造出@0@0@0@让其替换那么我们就可以造成字符串逃逸吃掉后面他的反序列化,自己生成我们的反序列化。测试发现需要逃逸的地方是后面的24个字符,所以我们只需要构造6个@0@0@0@就可以“吃掉”后面的内容我们就可以直接构造反序列化。简单来说就是利用linux的解析漏洞,当他的末尾不是一个ascii的可见字符的时候,就会将他丢弃,取出他上面的文件名。如果协议无法识别,就会认为它是个目录。替换一次@0@0@0@变成。
2022-11-13 10:20:25 764
原创 DASCTF10月 web
比赛忘记打了,回头看看题一个简单的链子payload:记得替换一下fine后面的元素个数,大于自身的个数就能绕过wakeup题目提示redis源代码:值得注意的是这个地方:在这里的值都是我们可控的,而反序列化打redis一半都是配合ssrf这里也给我们提供了条件可以使用内置类SoapClient因为他的destruct函数里面调用所以会自动进入,我们只需要构造我们需要的值即可尝试写入一句话进shell.php发现虽然页面在加载,也就是说我们的命令已经执行,但是访问shell.php发现并未写
2022-10-28 21:46:07 1725
原创 DASCTF九月挑战赛复现-web
那么他就会直接将product合并到order原型链上那么他就可以直接添加token进入下面的判断语句了。可以发现在调用buyapi接口的时候直接将body作为实参传过去了,所以我们就可以控制product。那么我们只需要修改其中的分数,用它原来的方法对他进行一次发包就可以拿到flag。下面的代码可以看到只有当他的密码是截取的1到6位的时候才会获得9999块钱。e就是分数,t就是我们的checkcode我们直接在页面中对他进行调用。这里是可以直接传入URL的,URL会进行编码。
2022-10-18 10:48:40 793
原创 NewStarCTF 公开赛赛道week3 web writeup
里面完全的没有验证,而且应该是一个简单的判断,判断成绩是否达到了425分,那么应该是使用update更新数据库信息,让火华师傅的成绩大于425即可。这里提供两种方法,一种是用replace into替换掉update,也可以使用预编译的方式。但是点击没用查询火华的成绩时候,出现两个火华,应该是多了直接删除即可。接着直接访问文件就能RCE(用bp发包,否则这里的符号会被编码)而刚进入的页面是有一个可点击的页面进去看下verify.php。题目名字可以看出来,多SQL,堆叠注入。直接拉网上的exp打。
2022-10-10 19:52:32 1475
原创 BUU刷题(二)
看到在登陆路由里面如果我们提交了register她会判断你的userid如果里面含有大小写的admin就会弹窗禁言,但是登陆的action判断又必须得是大写的ADMIN。他将我们的输入clone到data中,所以这里我们如果污染这里的内容就可以了,那么污染哪个内容呢,我们继续跟进下面剩下的info路由。这里把我们输入的userid转换成大写了,而nodejs的大小写是有特性的,如果相像的字符通过转换之后可能会相同。看不明白了,所以查了一查,发现这里考的是C语言的预编译。
2022-10-06 18:31:42 219
原创 BUU刷题
可以想到,因为题目里面给出了文件的路径也就是$this->filename_tmp我们是知道的,我们如果可以控制$this->filename的话我们就可以控制上传的后缀。第二层判断是要他不完全等于png,但是他的判断方法跟上面的又完全不同,getimagesize返回的是图片信息等的数据。里面是一个xml示例文档,这里跟外面上传goon功能下面的是一样的,也就是我们需要上传一个xml文件。那么如果我们让他检测的结果不全等就行了,向上看看代码,发现他是由getimagesize来的,
2022-10-05 16:35:14 223
原创 NewStarCTF 公开赛赛道week2 web writeup
利用mt_srand是伪随机数用它给出的Hint到php_mt_seed里面直接跑。如果我们post提交了一个data那么他就不会执行后面的文件从而执行我们自己的输入。由Easy::__call方法进入eeee::__clone。进入__invoke需要调用到Start::__isset。上周做题被这道sql注入整感动了,这次增加难度又来了。由Sec::__tostring进入__call方法。最终调用点在Sec::__invoke。发现我们直接在页面查询是输入了一个id。虽然加了点难度,但是还是挺简单。
2022-10-02 12:00:00 809 1
原创 网刃杯赛题writeup
网刃杯赛题writeup本wp为本人原创,转载需附带链接。webSign_in解题思路:读内网靶机,然后读取网段内容,利用gopher协议,进行ssrf伪造一个post框上传即可payload:import urllib.parsepayload =\"""POST /index.php?a=1 HTTP/1.1Host: 127.0.0.1Content-Type: application/x-www-form-urlencodedX-Forwarded-For: 127.0.0.
2022-04-25 10:57:39 2129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人