SQL注入漏洞之钓鱼网站注入|断刀流博客
文章简介
前段时间仿照了一个钓鱼网站,钓鱼网站 肯定是需要存储数据的,存储数据就要和数据库进行交互。和数据库交互不会产生问题,但如果和数据交互时,没有对特殊字符过滤;那么网站就会存在SQL注入漏洞,就会有被暴库的风险。下面 就用这款 ” 钓鱼网站“ 来搭建一个” SQL注入环境 “,具体讲解一下 SQL注入漏洞。本文章转载至《断刀流技术博客》
使用工具介绍
- SQL常用语句
- PHPWAMP(网站集成环境)
- SQL注入钓鱼网站源码
搭建存在SQL注入的钓鱼网站
首先运行PHPWAMP启动默认(Apache+mysql+php)环境,把” 钓鱼网站 “的源码全部放到网站根目录。接着点击浏览网站,看钓鱼网站是否搭建成功,页面如下。钓鱼网站 一般为了搭建简单,都是直接在本地创建一个MDB文件,然后用脚本程序对MDB文件 进行 连接 读写操作,所以把“ 钓鱼网站 ”源码丢到网站根目录,无需配置数据库,直接就可以使用了。
image访问钓鱼网站后台
“ 钓鱼网站 “的后台在网站根目录下的123目录,因为 ” 断刀流“是在本地搭建的”钓鱼网站“。所以直接127.0.0.1加123目录进行访问,网站后台账号密码是 admin 。注:搭建这个钓鱼网站的目的,是为了让你们 了解一下 ”SQL注入漏洞“,可不是让你学习 网络钓鱼。
imageSQL注入漏洞
该 ” 钓鱼网站 “ 因为没有添加特殊字符过滤,在执行某些操作时。网站会把用户输入的字符,直接带入到数据库并执行。把用户输入的数据带入到数据库不可怕,可怕的是;因为该网站没有特殊字符过滤机制,攻击者 可以通过构造 特定的SQL语句,然后把特定的SQL语句输入,并传递到数据库进行执行。这些特定语句会对网站造成什么样的攻击,那就看攻击者最终的目的了。
image万能密码登陆后台
像之前比较常用的 网站后台 万能密码,万能密码就是构造好的特定SQL语句。在“ 钓鱼网站 ”登陆后台输入('or '1'='1)该特定SQL语句,然后点击 立即登录 按钮,输入的 特定SQL语句 在数据库执行后,就会直接登陆成功,跳转到后台管理页面。像早些年 这样的” 万能密码 “还是挺给力的,不过随着网络安全意识的提高。防SQL注入的手段也越来越高明了。
image网站后台正常登陆SQL语句解析
当用户点击登陆,网页首先会获取用户输入的登陆账号和密码,然后组成SQL查询语句。通过脚本程序连接到数据库,在数据库中查询是否有这个账号,如果有这个账号,在对比密码是否正确。如果账号和密码都正确 就返回真,否则就返回假。代表SQL语句:
select * from
admin where
admin='admin' and password='admin'
万能密码非正常登陆SQL语句解析
万能密码之所以能成功登陆后台,是因为该”钓鱼网站“ 没有过滤掉像 双引号、单引号、空格... 这样的特殊符号, 举例:下面的 admin = ‘ 内容 ’,单引号里面本来是要,输入登陆账号的。结果输入的内容;被我们构造成了('or '1'='1)的特殊语句,特殊语句中存在单引号。特殊语句中的单引号,直接就把前面的单引号(admin = ‘ ')给闭合了。
然后 (or '1'='1)又对SQL查询语句进行了扩展,当SQL语句执行后,不管登陆账号和密码正不正确,都会返回真登陆成功。因为 (or '1'='1)这句语句影响了,SQL语句原本的执行方向, 或(or)的意思是,只要有一个条件成立,就直接返回真,下面的 1 = 1是绝对可以成立的。
select * from
admin where
admin=''or '1'='1' and password=''or '1'='1'
SQL注入学习
要想把”SQL注入“学好,首先需要把SQL的基础语法都弄清楚。至少简单的 增 删 改 查 要懂一些,如果SQL语法一点都看不懂,那么在学习”SQL注入“的过程中,也将会处处受限制,学习的非常痛苦。
这也是很多人 从入门到放弃 的原因,基础东西看不上,想直接学习高大上的东西,恨不得一口吃成胖子。学高大上的东西,又没有打好基础,结果啥都看不懂,自身学得很痛苦,自信心备受打击,最后只能老老实实放弃。本文章转载至《断刀流技术博客》
文章相关下载
- SQL注入视频讲解
- SQL注入钓鱼网站源码
文章声明
<cite>此文章只用于技术交流学习,切勿用作非法用途,否则后果自负。</cite>