sql inject 入门-原理
sql inject 目前排名owasp top ten 第3 ,有排名说明威胁依然严重.公益漏洞依然可以挖.
本文仅供自己学习使用…
sql 原理:
我们输入非法sql 语句提交给数据库,被当成合法sql 语句执行. 就说明这个网站存在数据库注入漏洞.一般可以在网站上的各种框框中输入(表单) , 以及http请求中的参数:
数据库查询语句基本语法如下(手工注入需要对数据库查询语句有基本了解):
select 查询内容 from 所在表 where 条件;(说明)
demo:
select * from information_schema.tables where table_schema = database();
注入流程如下:
判断网站是否存在数据库注入:
content.asp?id=595
现象1: 后方跟 and 1=1 —页面有内容(页面正常)
现象2: 后方跟 and 1=2 — 页面没有内容(页面内容空白但是还是正常页面) 且返回码不是400系列
同时出现上述现象即存在数据库注入.
判断字段数, (order by number)
order by 的作用是根据第n列排序,如果不存在那一列即报错.
判断回显点
使用 联合查询 语法,进行回显点判断.
union 可以在后方跟第二条select语句,但是第二条select 语句显示的列数需要和第一条select列数相同.
假设有4列
使用方式如下
content.asp?id=595 and 1=2 union select 1,2,3,4.
回显点会在页面中显示出来.</