WebGoat之Injection Flaws
1. SQL Injection/SQL注入
SQL注入,是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
主要用到的SQL语句:
SELECT * FROM table_name WHERE column_name = 'abc' OR '123' [ORDER BY column_name DESC/ASC] INSERT INTO table_name VALUES("tester","22","F", ...); UPDATE table_name SET column1_name = 'abc' WHERE column2_name = 'def'; DELETE FROM table_name WHERE column1_name = "abc";
WebGoat实例1—— Numberic SQL Injection
打开webscarab,截取HTTP Request并修改如下
<因为输入的station是数字型,所以不用加'>
攻击成功!
WebGoat实例2—— String SQL Injection
打开webscarab,截取HTTP Request并修改如下:
登录成功!
WebGoat实例3——Modify Data with SQL Injection
打开webscarab,截取HTTP Request并修改如下:
当攻击成功后,再查询jsmith的salary时,结果如下:
同理通过SQL注入,可实现增加或删除数据等操作。
2. Command Injection/命令注入
顾名思义,命令注入,就是在Web表单递交或输入域名或页面请求的查询字符串中注入命令。
WebGoat实例4——Command Injection
打开webscarab,截取HTTP Request并修改如下:
攻击成功!
此外,还有XPath等其它注入,原理如上,仅仅根据各种查询语句的语法不同而略有差异。
当然,还有盲注入......