#union联合注入
拿到题目后第一步先进行注入点的判断,注入点的判断一共分为三步:
- 输入id=1或id=2,观察回显内容与原来的内容不同,说明输入的数据和数据库有交互,并将数据显示在屏幕上
- 输入id=1’,页面报错,说明后端对前端没有很好的过滤,存在sql漏洞
- 输入id=1’ and 1=1 --+ 页面显示正常,输入id=1’ and 1=2 --+
页面显示不正常,说明程序对我们的输入做了正确的判断,猜测注入点为单引号
一般情况下,页面会根据输入数据的变化而变化,当存在注入点时,我们可以优先考虑使用联合注入进行解题。
判断完注入点后,我们就可以按套路进行了:
第一步:判断当前表的字段数(order by函数的运用)
id=1’ order by n --+ 根据回显情况找到表中的列数
第二步:判断显示位,此时需让union select 前面的参数查不出来而回显后面的语句,即id=-1’
id=-1’union select 1,2,3,…,n --+
第三步:根据回显内容判断在哪放置测试语句
例如: