[原题复现]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(北京联合大学公开 ...
随机推荐
- solr之functionQuery(函数查询)【转】
函数查询 让我们可以利用 numeric域的值 或者 与域相关的的某个特定的值的函数,来对文档进行评分. 怎样使用函数查询 这里主要有两种方法可以使用函数查询,这两种方法都是通过solr http 接 ...
- BOOST 条件变量使用
代码: // boost库 条件变量 使用测试 #include <iostream> #include <boost/thread.hpp> using namespace ...
- HTML轮播(2)
前言 现在在完成轮播的框架上进行扩展更多的功能,上下切换图片,以及添加动画滚动更加平滑过渡 CSS <style> #LB { width: 100%; height: 948px; ov ...
- 联赛模拟测试24 B. 答题 折半枚举
题目描述 分析 暴力的思想是把 \(2^n\) 种得分枚举出来,每一种得分的概率都是相同的,然后从小到大累加,直到大于等于所给的概率 把问题转化一下,就变成了在 \(2^n\) 种元素中求 \(k\) ...
- Pytorch中cudnn版本查询
问题: Disable or able cudnn,查询版本. Disable cudnn for batch_norm: (See: @Microsoft / human-pose-estimati ...
- 使用 tabindex 配合 focus-within 巧妙实现父选择器
本文将介绍一个不太实用的小技巧,使用 tabindex 配合 :focus-within 巧妙实现父选择器. CSS 中是否存在父选择器? 这是一个非常经典的问题,到目前为止,CSS 没有真正意义上被 ...
- 对精致码农大佬的 [理解 volatile 关键字] 文章结论的思考和寻找真相
一:背景 1. 讲故事 昨天在园里的编辑头条看到 精致码农大佬 写的一篇题为:[C#.NET 拾遗补漏]10:理解 volatile 关键字 (https://www.cnblogs.com/will ...
- 【QT】QThread源码浅析
本章会挑出QThread源码中部分重点代码来说明QThread启动到结束的过程是怎么调度的.其次因为到了Qt4.4版本,Qt的多线程就有所变化,所以本章会以Qt4.0.1和Qt5.6.2版本的源码来进 ...
- 使用 Xunit.DependencyInjection 改造测试项目
使用 Xunit.DependencyInjection 改造测试项目 Intro 这篇文章拖了很长时间没写,之前也有介绍过 Xunit.DependencyInjection 这个项目,这个项目是由 ...
- 3.1 spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖
本次博客的目标 1. 手写spring循环依赖的整个过程 2. spring怎么解决循环依赖 3. 为什么要二级缓存和三级缓存 4. spring有没有解决构造函数的循环依赖 5. spring有没有 ...