WebGoat系列实验Injection Flaws

WebGoat系列实验Injection Flaws

Numeric SQL Injection

  1. 下列表单允许用户查看天气信息,尝试注入SQL语句显示所有天气信息。
  2. 选择一个位置的天气,如Columbia,点击Go!按钮,使用Burp拦截GET请求,将参数station的值由原来的101改为101 or '1' = '1',将报文发送,服务器返回了所有的天气信息。image

Log Spoofing

  1. 实验下方的灰色区域代表了web服务器的登录日志,目标是伪造admin用户登录的日志记录。
  2. 尝试随意输入一个用户名yangmzh3,点击Login按钮,在日志中出现一行Login failed for username: yangmzh3
  3. 构造用户名为yangmzh3%0d%0aLogin succeed for username: admin,%0d字符表示回车CR,%0a字符表示换行LF,伪造了admin用户登录的日志。image

XPATH Injection

  1. 下列表单允许雇员查看个人数据依据薪水信息。已知账户Mike/test123,目标是查看其他雇员的数据信息。
  2. 用户名与密码输入'or'1'='1,点击Submit按钮,服务器返回了所有雇员的数据信息。image

String SQL Injection

image

LAB: SQL Injection

Stage 1:String SQL Injection

  1. 尝试使用boss Neville的账户进行登录,验证Neville的个人简介可以查看,其他功能也可以使用。
  2. 用户名选择Neville,密码输入'or'1'='1,点击Login按钮,发现登录失败。
  3. 再次输入上述密码,使用Burp拦截GET请求报文,发现发往后台服务器的密码发生了改变,说明前端对不合法的字符进行了URL编码处理。image
  4. 在Burp中把密码修改为'or'1'='1,再次提交,成功使用Neville登录。

Stage 2:Parameterized Query #1

THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT

++Stage 3:Numeric SQL Injection++

  1. 作为雇员Larry,使用SQL注入参数来查看boss Neville的个人简介。
  2. 使用Larry进行登录,选中Larry Stooge,点击ViewProfile按钮查看Larry个人简介。使用Burp拦截GET请求报文,尝试对参数employee_id进行修改。image
  3. 将id由101改为102,返回An error has occurred.
  4. 将id由101改为101' or '1' = '1,返回An error has occurred.
  5. 将id由101改为101 or 1 = 1,返回Larry的个人简介。
  6. 将id由101改为101 or '1' = '1',返回Larry的个人简介。
  7. 将id由101改为101 or 1 = 1 order by phone desc,返回了Sean Livingston的个人信息。由此判断页面显示的是以用户id作为索引返回的数据表中的当前第一条记录。
  8. 将id由101改为101 or 1 = 1 order by salary desc,返回了boss的个人信息。

Stage 4:Parameterized Query #2

THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT

Database Backdoors

  1. 尝试使用一条额外的SQL语句查询用户ID为101的薪水,并将薪水调高。
  2. image
posted @ 2017-09-19 14:42  燕麦粥  阅读(1170)  评论(0编辑  收藏  举报