CTF 简单sql

CTF 简单sql_第1张图片
针对网络安全实验室 注入关该题,写一下自己的思路
CTF 简单sql_第2张图片
打开页面 发现就一句话,那就查看下网页源代码,不查不知道,一查吓一跳,他直接告诉我们做题的思路,就是最古老的手工注入
因为他这里告诉我们 id=1,我觉得他给我们的提示,id不重要,而是后边的话重要,直接告诉我们,类似于这种题,应该怎么做。
好了 ,进入正题
那我们就开始:
那我们就在url 网址中去试,看看他有几个字段,当我们让id=4时,发现为空白网页,说明有三个字段
CTF 简单sql_第3张图片
CTF 简单sql_第4张图片
CTF 简单sql_第5张图片
当我们在第三个字段中,他告诉我们,flag就在这里,那说明有隐藏内容我们需要把他查询查来
在 id=3的后边直接输入 or 1=1 然后我们就查询出flag
这相当于 select语句的 select * 在该字段中查询出所有内容,这是第一种做法
CTF 简单sql_第6张图片第二种做法:
我们知道 有三个字段,flag 肯定藏在 某个数据库中的某个表中
那我们就想查询出他的数据库
CTF 简单sql_第7张图片
通过语句 union select 1,database(),3
查询出他的数据库名字是mydbs
那我们就需要在该数据库中查询他在哪种表中
union select 1,table_name,3 from information_schema.tables where table_schema=‘mydbs’
查询出在该数据库下有那张表
sae_user_sqli3

一般都把所有数据库的信息 都放在一个叫 information_schema中
然后在该表中查出他表中的内容
union select 1,column_name from information_schema.columns where table_schema=‘mydbs’ and table_name=‘sae_user_sqli3’

CTF 简单sql_第8张图片
发现他表中的字段有 id title content
然后我们就挨个查询 每个字段的内容,发现在第三个字段中,找到flag
union select 1,2,content from sae_user_sqli3

你可能感兴趣的:(安全,CTF)