实验链接
POST是HTTP/1.1协议中的一种资源请求方法。其向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。本实验主要介绍了POST传送工具的使用,学会根据显错信息来设定注入语句。
链接:http://www.hetianlab.com/expc.do?ce=d2ed6f88-8aa7-489a-ac4a-371fa8b750ac
实验简介
实验所属系列: SQL注入初级
实验对象:本科/专科信息安全专业
相关课程及专业: web应用安全、网络攻击与对抗
实验类别:实践实验类
预备知识
POST是HTTP/1.1协议中的一种资源请求方法。其向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
在很大一部分的表单都是通过POST方式发送到处理页面的。
实验目的
-
了解POST传送工具的使用
-
根据显错信息来设定注入语句
实验环境
-
服务器:windows2003 ,IP地址:10.1.1.10
-
客户端:winXP,IP地址随机分配
实验步骤
步骤一
打开桌面上的火狐浏览器,在『POST注入-显错注入』下找到『POST - 基于错误 - 单引号 - 字符型:
跳转到了登录页面,此时随意输入,提交后可看到网页将sql语句给出:
尝试在用户名处加 or ‘1’=‘1’ 绕过sql检测:
登录后发现多了一个 ’ ,重新尝试:
分析一下,or ‘1’=‘1’ 应该放在password后,或者再连接一个 or 语句,否则or的内容和password一起判断。
再次尝试:
此时绕过检测成功,成功获取用户名及密码。
关键代码为:
请构造语句来显示所有的用户名和密码
’OR 1#
构造提示语句查看所有用户:
步骤二
打开桌面上的火狐浏览器,在『POST注入-显错注入』下找到『POST - 基于错误 - 双引号 - 字符型 - 变形』,
先随便输入,查看sql语句提示:
和实验一一样,只是处理符号有变形,稍作修改即可:
成功获取用户名与密码。
关键代码为
请构造语句来显示所有的用户名和密码
")OR 1#
根据提示重新构造语句查看所有用户:
答题
感想
之前我自己考虑的方式只能获取数据库中第一个用户的用户名与密码,而根据提示构造的语句则是列出数据库中所有的用户名与密码。
‘#’表示注释后面的内容,也就是把 ” limit 0,1 “ 注释掉了,即把显示数据库信息的限制条件注释了,这样就可以看到所有的用户信息了。
“ or 1=1 # "是数据库注入的万能语句。