Injection flaws
Command Injection
命令注入攻击是通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容,而这样就可能会导致恶意命令掌控用户的电脑和他们的网络。
在网页中尝试注入一个操作系统的命令
点击查看,webscarab就会弹出拦截的信息。在w webscarab里修改信息( “ & netstat ?an & ipconfig”)
Numeric SQL Injection
程序对用户提交的变量没有进行有效的过滤,就直接带入查询语句中,这样,我们就可以提交具有数据查询功能的语句,加入到程序将要提交的信息中去,再根据服务器返回的信息来判断数据库里的内容!
演示
允许用户查看天气数据。尝试注入一个字串,结果使的所有天气数据显示。
点击GO, webscarab就会弹出拦截的信息。在里面修改信息( or 1=1)
Log Spoofing
每个 SQL 数据库都有事务日志,用以记录所有事务和每个事务对数据库所做的修改。这里就是通过修改日志文件以达到欺骗的目的。
演示
利用日志的格式,使用换行等字符,欺骗管理员。
打开日志欺骗的页面,演示要求将一个普通的用户提升到管理员权限
写好代码:Smith%0d%0aLogin Succeeded for username: admin这里是将名字为Smith的用户提升为管理员
代码执行
・XPath/XQuery注入
XPath和XQuery是能够查询XML文档的语言,类似于结构化查询语言(SQL)。事实上,许多流行的数据库允许利用XPath和XQuery来查询数据库。在许多情况下,攻击者不能够直接访问XML数据,但是,攻击者可以用部分数据来创建XPath和XQuery语句,而这些语句能够用来查询XML。这样,攻击者就能够通过精心构造的输入来注入任意的查询,以此来获得数据,而这些数据在正常情况下是不允许攻击者访问的。
XML文件能够包括信息的不同部分或者区域。
XPath 注入,攻击者利用Web 应用对用户提交的参数过滤不严的漏洞,提交经过构造的参数,这些参数能够被注入到XPath 查询语句中,获得权限信息的访问权并在此基础上更改这些信息。适用于使用XML 文档存储数据的Web 应用系统。
演示
通过已有的账户尽可能的看到其他用户的的数据。
在用户名处写入相关的语句 Mike’ or 1=1 or’a’=‘a
LAB: SQL Injection
目的:使用字符串注入绕过认证,使老板neville没正确密码也可以获取修改权限。
选择neville进行登陆,websacrab拦截进行修改,在密码出写入smith’ or’1’=‘1
步骤3:
目标:使作为普通员工Larry通过注射和参数函数可以查看老板的文件
通过注入一个字符串使用户名‘Smith’的查询结果把所有的信用卡号码显示出来
String SQL Injection
程序对用户提交的变量没有进行有效的过滤,就直接带入查询语句中,这样,我们就可以提交字符串的语句,加入到程序将要提交的信息中去,再根据服务器返回的信息来获取数据库里的内容。
进来字符串注入的页面,按要求构建代码,即smith ‘or’1’=‘1
Modify Data with SQL Injection
注射修改数据
目标:
使用注射修改用户标识jsmith工资。
根据要求构建代码,代码如下:
jsmith';update salaries set salary=320000 where userid='jsmith
Add Data with SQL Injection
添加数据注入
演示
根据要求构建代码,代码如下:
jsmith';insert into salaries values('jonniexie',65535); --
Database Backdoors
数据库的后门
数据库的使用通常作为一个后端应用程序。它是用来作为存储媒体。它也可以被用来作为一个地方来存储一个恶意活动,作为一个触发。触发器是由数据库管理系统在执行另一个操作数据库的选择,插入,更新或删除。攻击者可以创建一个触发器,定义为自己的电子邮件地址,而不是每一个新的用户的电子邮件地址。
通过建立数据库后门,以便获取数据库中储存的用户信息,达到控制的目的。
演示
在页面中写入Inject this for the user ID: 101; update employee set salary=10000,就可以进入步骤2了
步骤2就需要我们建立后门,这就需要我们构建代码,代码如下:
101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='[email protected]'WHERE userid = 101