SQL注入笔记<1>

SQL注入原理

   SQL注入主要是开发人员在构建代码的时候,没有对用户输入的值的边界进行安全的考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄漏的一种漏洞。

把SQL命令插入到 Web表单递交 或 输入域名或 页面请求 的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

可能存在注入的地方:

URL 搜索框 登录框 cookies(cookie注入仅存在于ASP的程序中) 留言 修改资料 获取HTTP头的信息(client-ip , x-forward-of),订单处理(二次注入)等

 

SQL注入与XSS,CSRF

相同点:程序员的过滤疏忽。

异同点: XSS前端代码过滤,CSRF数据提交没做验证,SQL注入是在数据库语句被恶意执行

 分类

注入的参数类型(按http请求方式):POST, GET, COOKIES, SERVER 其实只要值传到数据库的执行语句那么就可能存在sql注入。

按照变量:字符型(不能进行运算)、数字型(数字不需要单引号(')包围,能运算)

按注入方法:报错注入、延时注入、布尔型盲注、联合查询注入、多语句执行注入

SQL注入漏洞的攻击流程

  1. 注入点检测 :判断是否存在注入,关键看是否出现页面报错信息,如若报错证明其执行了你填写的SQL语句,比如给参数加单引号查看页面信息如若页面出现变化,说明该Web页面存在SQL注入,若没有出现变化,可能没有SQL注入,也可能有但需要特殊的方法绕过

数字类型,参数不用被引号括起来,如?id=1 
其他类型,参数要被引号扩起来,如?name="phone"

(2)信息获取-通过注入点取期望得到的数据

    环境信息:数据库的类型、版本,操作系统的版本,用户信息等 

    数据库信息:数据库名称,表,字段,字段内容(加密内容的破解) 

(3)获取权限

获取操作系统的权限,通过数据库执行shell,上传木马程序。

总结

注入首先要找到 注入点

使用联合查询语句时,需要将语句写在一个闭合的空间内,这个空间就是通过查找注入点并添加的一个闭合的引号内。

在网站中使用的查询语句在 MySQL 中都可以实现。

TIPS:GET AND POST

GET方式中使用URL提交注入数据

POST方式中使用抓包工具(如bp)修改POST数据部分提交注入

TIPS:常见的字符编码

单引号(')编码为:%27

空格编码为:+

加号(+)编码为:%2B

等号(=)编码为:%3D

TIPS:数据库常用语句

查询当前数据库 select database();

查询表:select table_name from information_schema.tables where table_schema='当前数据库'

查字段:

select column_name from information_schema.columns where table_name='表名'

Tips:万能密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值