webctf07Day

                                         我要成为web🐕
  1. 你从哪里来
    HTTP请求报文:
    在这里插入图片描述他说要从谷歌来:
    可以bp抓包:
    更改一下请求头的内容就可以实现了:
    具体的:
    http请求头里的键值对是
    也就是请求头里每个key对应的功能!

在这里插入图片描述
这个题用到 referer:该页面的来源URL
那我们就可以直接bp抓包,再修改,最后获取响应!

这个题好像在攻防世界做过!

在这里插入图片描述2.md5 collision(NUPT_CTF)
md5 collision(md5碰撞)这英语不好太难了😭
考点:md5检查绕过

题目了有两点:
1 md5 collision(md5碰撞)
2 input a
试了试
在这里插入图片描述在这里插入图片描述老错!false
怎么办🐷
md5绕过:
1科学计数法 0==0

在这里插入图片描述我认为MD5咋检查吧,就是输入a后它的md5值和原来它原来本身创建的md5值相等!那它们就是一个东西。
通过这个,因为我们又不知道它的值具体是多少,只能通过绕过方法。

也就是a它原本就有个值,现在要通过a的MD5值相同,来表示值相同来绕过!
来随便找个:
直接网上MD5 oe 一收🤭:

0e开头MD5值小结在这里插入图片描述3.程序员本地网站
考点 :XFF(X-Forwarded-For)
在这里插入图片描述这个在攻防世界也做过好像!
前面第一题里的HTTP请求头里有讲解XFF。
简单说就是要从本地登录来访问:
本地一般都是:127.0.0.1
bp抓包添加XFF即可👨‍🎓:

在这里插入图片描述4.各种绕过
考点明显就是考你各种的绕过!

    <?php
highlight_file('flag.php');
$_GET['id'] = urldecode($_GET['id']);
$flag = 'flag{xxxxxxxxxxxxxxxxxx}';
if (isset($_GET['uname']) and isset($_POST['passwd'])) {
    if ($_GET['uname'] == $_POST['passwd'])

        print 'passwd can not be uname.';

    else if (sha1($_GET['uname']) === sha1($_POST['passwd'])&($_GET['id']=='margin'))

        die('Flag: '.$flag);

    else

        print 'sorry!';

}
?> 

1.代码审计
有一个flag.php。五日不会有答案吧!我在想屁吃🐷

$_GET['id'] = urldecode($_GET['id']);

看大佬文章都没写这点!自己想不通!哦。。
这里因为urlencode(margin)=margin
加不加密都一样!五日👀
在这里插入图片描述

3.sha1 — 计算字符串的 sha1 散列值
那现在

MD5和SHA1是2种加密算法,用于计算出一段不可逆向计算的数值,以此来验证该文件是否被修改的.
它可以帮验证从网上下载下来的windows7安装程序是否与发布人发布的东西完全一致,也就是帮助验证这个程序有没有经过他人(非发布人)的修改。

所以大概就是要uname和passwd的SHA1的值和类型都相同还有id=margin就可以得到flag了!
但是又有个条件uname和passwd本身的值不能相同,不然就直接输出了。

我认为(看完大佬)sha1和md5有一样的漏洞。
就是是数组的时候他们的MD5()是null.而SHA1()是false。

最后构造payload:
?uname[]=1&d=margin
小心有点passwd是post
passwd[]=2

还有一点不要带上flag.php不然出不来flag
(不给答案就算了,还坑人🐱‍👤)
在这里插入图片描述
5.web8
txt????有个txt提示
试一试flag.txt
不知道为什么页面容易405 刷新几下也能看到提示
flags
flags.txt是404啥也没有!
这是啥意思呢?

 <?php
extract($_GET);
if (!empty($ac))
{
$f = trim(file_get_contents($fn));
if ($ac === $f)
{
echo "<p>This is flag:" ." $flag</p>";
}
else
{
echo "<p>sorry!</p>";
}
}
?>

代码审计:函数好多记不住呀😱

extract — 从数组中将变量导入到当前的符号表
也就是把下标变成了变量,直接输出**$下标**就可以得到值!
在这里插入图片描述 就是把你get的参数变成变量!

empty — 检查一个变量是否为空
当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.
就是空的时候是true,不空是false!
那!empty就说明他是有值的!

trim — 去除字符串首尾处的空白字符(或者其他字符)

file_get_contents — 将整个文件读入一个字符串
file_get_contents($fn):file_get_contents功能是从文件名为“$fn”的文件中读取数据,但是当$fn的值为“php://input”,它会接受并返回post的值

大概意思是$ac$f的类型和值都要等于,就可以都到flag了。

这里大佬们说得到的提示flags可能是$ac的值。
因为$fn它是文件,那它可能是flag.txt

试一试:
可以😀
在这里插入图片描述
大佬们还说有另外的方法:php://input(PHP输入流)

$fn的值为“php://input”,它会接受并返回post的值

利用file_get_contents在$fn的值为“php://input”时会返回post值 的特点,使$ac值为123,$fn值为“php://input”,并post值123,同样可使 a c 和 ac和 acf相等
在这里插入图片描述6.细心
在这里插入图片描述看了看源代码也没有可用信息
那就Disearch扫一扫有什么吧:

试一试扫出来的网站:
在这里插入图片描述在这里插入图片描述
不让访问,我偏要访问😋
在这里插入图片描述有一行php代码提示,还有要是管理员!
题目上有提示说要想办法变成admin
那我们就吧x赋值admin试一试吧:可以😀
一般这种脑洞题也是不错的!
在这里插入图片描述7.求getshell
题目说到了getshell
在这里插入图片描述题上说要上传一个图片不是php文件
那我们先按要求试试
在这里插入图片描述上传成功还可以看上传的图片
但都没有结果
大佬给思路。
bp抓包;
大佬都说是(后缀黑名单检测和类型检测)
在这里插入图片描述(刚刚接触文件上传)个人理解黑名单检查很好理解
指定一些不能通过,别的全能通过!

一 一试试php别名:php2, php3, php4, php5, phps, pht, phtm, phtml(一个个去试,发现php5没有被过滤掉)这是黑名单检测!

那类型检测怎么绕过呢?
将Content-Type: multipart/form-data;其中的一个或多个字母换成大写,越过服务器端检查。相当于失效了!

在这里插入图片描述在这里插入图片描述累了👻
大佬说这个题是walf严格匹配,。不知道他是什么!
以后做题遇到再说吧!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值