一、错误回显
当网站的注入点脚本执行多个SQL语句,如一个查询语句(select * from xxx where id=)、一个增加统计的语句(update xxx set a=a+1 where id=).由于多个语句的列数不同,所以不能通过union联合查询来进行注入,最好的办法是利用MySQL的错误回显来进行注入。
成型的MySQL错误注入的公式如下:
Q +union select 1 from (select count(*),concat(floor(rand(0)*2),0x3a,(SQL limit 0,1),0x3a)a from information_schema.tables group by a)b +Z
同时,要注意MySQL的注释符: # +–+ /* 等
二、伪session认证
通常php等程序是将session文件存储于服务器缓存文件夹中,当访问量很高时就会由于要处理的session信息过多而影响效率。由于在处理大数据方面SQL比php更有优势,所以大多数厂商选择通过数据库来实现伪session认证。伪session认证是指,将session信息存入数据库,而每个session对应一个sessionid,然后将sessionid存入客户端cookie中。当客户端请求时,服务器根据cookie中的sessionid去数据库中查询对应的session信息来完成认证。
伪session认证由于要根据cookie中的sessionid来查询session信息,因此存在数据库查询语句,这样就导致可能存在HTTP Header注入漏洞。