ctfshow 摆烂杯web wp

考试前不想复(预)习,正好是ctfshow的摆烂杯,就去做了几道web题

web签到

题目要输入三个整数A、B、C,ABC均不可为0,让A³+B³+C³=114,刚开始还想着爆破,后面感觉到太慢了,开始随便输,发现输入1+1后会把他当成2来计算,那就很好办了,直接让输入数的幂为1/3即可

A=5&B=-1&C=-10**(1/3)

后面看群才知道。。
在这里插入图片描述
幸亏没爆破

黑客网站

f12后发现一堆字符串,题目也说了不用渗透和扫描,说明关键点就是这些字符串,这些字符串都是以onion结尾的,想到今年的极客大挑战,有一题也是给了个onion结尾的网址,于是把前面的空格全部删掉

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxion

然后用某葱浏览器访问就能得到flag

一行代码

<?php
echo 
!(!(include "flag.php")
||(!error_reporting(0))
||stripos($_GET['filename'],'.')
||($_GET['id']!=0)
||(strlen($_GET['content'])<=7)
||(!eregi("ctfsho".substr($_GET['content'],0,1),"ctfshow"))
||substr($_GET['content'],0,1)=='w'
||(file_get_contents($_GET['filename'],'r') !== "welcome2ctfshow"))?$flag:str_repeat(highlight_file(__FILE__), 0);

好家伙,这是人能想出来的代码?
先看他的逻辑,三目运算符要求前面那一长串为true,才能输出flag,又因为第三行开头的!,则中间所有的条件都要为false,又因为是或运算,那么每个条件都为false。
第一、二个条件是一定成立的;
第三个要$filename中没有.
第四个是$id=0
第五个是$content长度大于7;
第六个是让ctfsho$content的第一个字符拼接后值为ctfshow
但是第七个条件却不让$content的第一个字符为w,百度可以看到eregi()函数大小写不敏感,这里可以用W来绕过;
第八个条件要求$filename的值要等于welcome2ctfshow

payload:

GET:
?id=0&content=W1111111&filename=php://input

POST:
welcome2ctfshow
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Lum1n0us

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

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

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

打赏作者

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

抵扣说明:

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

余额充值