当前位置:网站首页>BUUCTF笔记(web)
BUUCTF笔记(web)
2022-08-10 05:41:00 【清丶酒孤欢ゞ】
一、[极客大挑战 2019]EasySQL1
进入后让我们登录网站,

尝试一下,

可以看到是get型,直接尝试绕过,
?username=admin' or '1'='1&password=123' or '1'='1
' 是为了闭合原本sql语句从而构成万能语句的。
二、[HCTF 2018]WarmUp1
给了个图片,我们f12或ctrl+u可以看到有个source.php隐藏部分

所以我们在url后面加上 /source.php
然后就是代码审计了。
<?php
highlight_file(__FILE__);
class emmm
{
public static function checkFile(&$page)
{
//白名单列表
$whitelist = ["source"=>"source.php","hint"=>"hint.php"];
//判断是否为字符串,不是则返回错误
if (! isset($page) || !is_string($page)) {
echo "you can't see it";
return false;
}
//第一次判断:将你传入的值与白名单中的比较,如果有则返回正确
if (in_array($page, $whitelist)) {
return true;
}
//第一次过滤,只取第一个?前的字符串
$_page = mb_substr(
$page,
0,
mb_strpos($page . '?', '?')
);
//判断在不在白名单中
if (in_array($_page, $whitelist)) {
return true;
}
//对page进行url编码,之后又是两个判断
$_page = urldecode($page);
$_page = mb_substr(
$_page,
0,
mb_strpos($_page . '?', '?')
);
if (in_array($_page, $whitelist)) {
return true;
}
echo "you can't see it";
return false;
}
}
if (! empty($_REQUEST['file'])
&& is_string($_REQUEST['file'])
&& emmm::checkFile($_REQUEST['file'])
) {
include $_REQUEST['file'];
exit;
} else {
echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
}
?>先是下面的 if 判断,如果file传的参数不为空,为字符串,且能通过上面那些过滤就执行文件包含。
所以我们这里url后加上hint.php看看

提示我们在ffffllllaaaagggg文件中,然后我们在将url变成
/index.php?file=hint.php?../../../../../ffffllllaaaagggg/index前面部分是你的靶场地址。(这里的index也可以换成hint或source,只是会把原来那些代码显示出来)
我们来分析一下,传入后,先对file值进行判断即file后面那串字符串,可以看到是非空,字符串,再将这个字符串传给page进行上面那一堆判断。
刚开始是hint.php?../../../../../ffffllllaaaagggg,然后第一次判断没有成功,然后往下第一次过滤,过滤后_page值为hint.php,在白名单内,所以判断正确,执行文件包含,后面的那些../是用来访问该文件的,因为不知道在哪个目录下所以是一个一个加尝试的。
最后成功拿到flag

三、[极客大挑战 2019]Havefun1
这个很简单的,进去之后可以看到源码中隐藏了一部分代码,

所以我们直接传递一个cat参数,令他的参数值为dog

四、[ACTF2020 新生赛]Include1
进去后看到就一个tips,我们点击一下,可以看到url变了,且提示我们用文件包含与php伪协议来完成。
file=php://filter/read=convert.base64-encode/resource=flag.php
然后去base64解密,

flag{ef7e62e5-5ed4-4f53-8c7c-fb80aaabf7cc}
不太懂得可以看看这两篇文章
php伪协议(文件包含)_番茄酱料的博客-CSDN博客_php伪协议文件包含
[ACTF2020 新生赛]Include 1_wow小华的博客-CSDN博客
五、[ACTF2020 新生赛]Exec1
很明显的命令注入漏洞
常见WEB攻击之命令注入 - 简书 (jianshu.com)
命令注入_extremebingo的博客-CSDN博客_命令注入
直接输入127.0.0.1;ls,前面的地址是自己的本地地址,后面的ls是为了遍历目录从而确定flag文件位置

没有什么东西,我们看一下上一级,127.0.0.1;cd ../;ls ,这里的cd 是切换文件夹,ls遍历当前文件夹

一直到 127.0.0.1;cd ../../../;ls,我们看到了flag

然后127.0.0.1;cd ../../../;cat flag,输出里面的内容就行了

边栏推荐
猜你喜欢

如何在VMlogin中设置YiLu代理?

Unity的GetComponentsInChildren1、2、3

Talking about 3 common shadow rendering techniques in games (2): shadow cone

全网可达,实现备份

Qt滚动条(QScrollBar)圆角样式问题跟踪

Can‘t find bundle for base name jdbc, locale zh_CN解决方法

【备份】《Unity Shader入门精要》配图

pthread编程重要知识点

Unity插件DOTween使用指南2(简释贝塞尔曲线)

UnityShader入门精要-立方体纹理、反射、折射、菲涅尔反射
随机推荐
Easy to master Unity of eight prior to rendering
不同场景如何使用动态代理?
Basic use of Unity's navigation and wayfinding system
一种奇怪的函数声明写法
Qt使用私有接口绘制窗口阴影
网页安全证书错误但无法安装证书的解决办法
为什么游戏需要热更新?
Can‘t find bundle for base name jdbc, locale zh_CN解决方法
手把手教你改内核源码--sysfs虚拟文件系统1
强化学习_10_Datawhale稀疏奖励
ArgumentException: GetComponent requires that the requested component ‘GameObject‘ derives from Mono
全网可达,实现备份
markdown类图学习
UnityShader入门精要-阴影
驱动的参数传入:module_param,module_param_array,module_param_cb
UnityShader入门精要-unity shader基础
How to implement a grid construction system
Unity plug-in DOTween User Guide 2 (Brief explanation of Bezier curves)
背包问题 c语言版
Win32屏幕坐标转换Qt坐标