Rock's blog

兴趣是最好的老师

0%

writeup-“百度杯”CTF比赛-九月场-SQLi

“百度杯”CTF比赛-九月场-SQLi 解题过程

1.确定注入点

打开题目,发现为空白页面,进而查看页面源代码

发现有login.php?id=1的链接,尝试从此处注入,这样就正好落入了出题人的圈套。因为这里是一个假注入点,尝试各种注入也没能找到注入点。这时需要重新寻找新的线索。查看header中是否有异样,经过仔细观察后发现,我们是从题目链接根目录刷新到一个页面,随后经过302跳转到当前页面的

仔细查看此过程的header发现了新的线索

访问该隐藏链接,并尝试注入,发现存在字符串类型的注入

其实这里我尝试了很多次也没有发现注入规律,最大的原因是注释符号#被过滤掉了,将#%23代替后成功找到了注入点。

2.探测过滤和确定注入方式

使用burp的intruder功能探测过滤了哪些字符和关键字,发现过滤了,(这里最好将特殊字符进行URL编码)。

接下来判断此处是否是盲注,发现可以通过union注入

3.开始注入

利用join来规避对于,的过滤,使用普通dump数据的语句即可完成注入

4.总结

通过这道题目,我注意到以下几点:

(1)注意对请求进行URL编码

(2)确定注入点时多尝试不同的注释符号或闭合方式

(3)注意观察请求过程中的header和内容

(4)找不到注入点时尝试查找是否有隐藏文件