SQL注入原理和检测
lsb_release -a(查看版本号)
手动漏洞挖掘--SQL注入(SQL语句)
简单查询
服务器从web到web applicaton后可以接受用户输入的内容
对数据库的操作
输入的内容 被 web applicaton进行操作后 传到数据库 然后查询后原路返回 数据库对查询内容的正误返回结果
SELECT * FROM users WHERE user='uname' AND passworrd='pass'
SELECT * FROM users WHERE user='uname' AND passworrd=''OR''='' 'OR''=' 与‘’的闭合 构成查询语句
1 基于报错的符号
通过与代码的双引号的闭合 单引号 如果里面有没有闭合的就报错 进行SQL语句凭借
双引号 百分号 ()
2 基于bool的检测
你的语句一定要交到后台数据库查询 那么怎么从web applicaton过去是关键 要在‘’之内 把输入的进行拼接
select fist from user where id = '' 输入1 与 输入 1'and'1'='1或2 一样 通过闭合 1' and '1或0
确定有sql注入漏洞
3 表列数/显示信息位于哪一列
'(这个为了闭合)order by 50--空格(id=''order by 50-- '注释后面的内容)(排序的 对指定或*字段数进行查询) 注意闭合 换列数进行查询 知道没有错误
知道字段
单独select (因为前面有select了) 有点问题 一般用union联合查询
select * 时表字段数=查询字段数
4 联合查询
'(闭合)union select 1,2(确定1,2字段出现在页面哪里)--空格