原文在此:A Classification of SQL Injection Attacks and Countermeasures
第一段主要是概述。说了了解sql注入的重要性。以及接下来会介绍各种sql注入方法和例子。
1 引言:
永远不要相信用户的输入。解决方法:加密用户输入和验证。
2 sqlias 背景
2.1 注入机制
1、通过用户输入注入。
2、通过cookie注入。
3、通过服务器变量注入。web网站中的变量不经过处理(原文单词:sanitization)直接存储在数据库中,这可以创建一个sql注入漏洞。例如:记录使用情况和浏览器类型(原文单词:logging usage statistics and identifying browsing trends),如果这些数据没有经过处理直接放入数据库,攻击者可以将sqlia伪造在HTTP和网络报文头中,然后放入数据库。
4、二次注入。攻击者在系统或者数据库中种下恶意输入,触发一个sqlia。稍后,利用漏洞 输入数据。例子如下:(漂亮啊 !生平第一次接触sql注入漏洞语句啊)
一个用户在网站上注册的用户名为:“admin' --” , 而程序在放入数据库之前没有对单引号做处理,防止可能发生的恶意注入。 这样,当用户修改自己的密码时。程序语句如:
queryString="UPDATE users SET password=’" + newPassword + "’ WHERE userName=’" + userName + "’ AND password=’" + oldPassword + "’"
而当此用户修改密码时,语句如下:
UPDATE users SET password=’newpwd’ WHERE userName= ’admin’--’ AND password=’oldpwd’
而 “--”是sql 命令操作符。在其之后的所有东西都将被数据库丢弃。因此,数据库的超级管理员(admin)密码就被黑客修改了。
2.2、攻击意图
1、确定注入参数。攻击者想探测某个网站来发现某个用户输入的处理比较弱,容易被注入。
2、Performing database finger-printing(不知道怎么翻译)。攻击者想确定网站的数据库的类型和版本。(电脑没电了,明天接着当英语的搬运工吧。晚安,coders!)
z..Z..Z