浅谈SQL注入攻击与防御(适用于小白观看)

article/2025/9/22 22:59:33

                                   

                                   首先什么是SQL注入攻击

SQL注入式攻击技术,一般针对基于Web平台的应用程序.造成SQL注入攻击漏洞的原因,是由于程序员在编写Web程序时,没有对浏览器端提交的参数进行严格的过滤和判断。用户可以修改构造参数,提交SQL查询语句,并传递至服务器端,从而获取想要的敏感信息,甚至执行危险的代码或系统命令。

                                            SQL注入的原理

SQL注入攻击原理:程序命令和用户数据(即用户输入)之间没有做到泾渭分明。这使得攻击者有机会将程序命令当作用户输入的数据提交给Web程序,以发号施令,为所欲为(注:注入最终是数据库,与脚本、平台无关)。
                           总之一句话:sql注入产生的原因是接受相关参数未经处理直接带入数据库查询操作

                                            SQL注入攻击的类型

                                               1.数字型注入                 2.字符型注入            3.搜索型注入

                                            怎样手工探测注入点

1.“单引号”法:第一种检测SQL注入漏洞是否存在的方法是“单引号”法。方法很简单,直接在浏览器地址栏中的网址链接后加上一个单引号,如果页面不能正常显示,浏览器返回一些异常信息,则说明该链接可能存在注入漏洞。

2.  and  1=1和1=2法

很多时候检测提交包含引号的链接时,会提示非法字符,或者直接不返回任何信息,但这并不等于不存在SQL注入漏洞。此时可使用经典的“1=1和1=2”法进行检测。方法很简单,就是直接在链接地址后分别加上and 1=1和and 1=2进行提交,如果返回不同的页面,那么说明存在SQL注入漏洞。

                       

                                                Boolian(布尔型)盲注

在我们的注入语句被带入数据库查询但却什么都没有返回的情况我们该怎么办?例如应用程序就会返回一个“通用的”的页面,或者重定向一个通用页面(可能为网站首页)。这时,我们之前学习的SQL注入办法就无法使用了。

盲注,即在SQL注入过程中,SQL语句执行选择后,选择的数据不能回显到前端,我们需要使用一些特殊的方法进行判断或尝试,这个过程称为盲注。

SQL盲注分为两大类:基于布尔型SQL盲注、基于时间型SQL盲注、

1.布尔盲注 布尔很明显Ture跟Fales,也就是说它只会根据    你的注入信息返回Ture跟Fales,也就没有了之前的报错信息。
2.时间盲注 界面返回值只有一种,true 无论输入任何值 返回情况都会按正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确

 

 

                                                       SQL注入工具

推荐三款我自己经常使用的sql注入工具:  1.sqlmap   2.Pangolin(穿山甲)  3.havij pro(自动化注入工具)

1.极力推荐使用sqlmap(还需要安装python) 优点:只要你会使用sqlmap就不需要掌握其他的注入工具了  缺点:sqlmap的命令语句很多很难记住

                      

          这里有我常使用的一些sqlmap的语句:  sqlmap.py -u http://192.168.1.4/sqlserver/1.aspx?xxser=1 ( -u 是get注入)

           post注入 sqlmap.py -r burpsuite抓包.txt(对post页面进行抓包,放在txt文件里再去跑) 

         指定表单注入 sqlmap.py -u URL –data“username=a&password=a”                                                                               

         sqlmap自动填写表单注入:sqlmap.py -u URL –forms  --dbs  //默认情况系sqlmap会自动的探测web应用后端的数据库类型:MySQL、Oracle、PostgreSQL、MicrosoftSQL Server、Microsoft Access、SQLite、Firebird、Sybase、SAPMaxDB、DB2

       sqlmap cookies注入:sqlmap.py -u 注入点URL --cookie "id=xx" --level 3(默认情况下SQLMAP只支持GET/POST参数的注入测试,但是当使用–level 参数且数值>=2的时候也会检查cookie里面的参数,当>=3的时候将检查User-agent和Referer。可以通过burpsuite等工具获取当前的cookie值,然后进行注入)

2.Pangolin(穿山甲)这款工具前几年感觉还可以,现在确实随着waf的牛逼,这东西基本上用处不大,优点:中文页面小白专属  缺点:工具过于鸡肋

               

3.havij pro(自动化注入工具)  优点:工具功能强大  缺点:英文界面 还是付费的(有破解)

  这是我经常使用的sql注入工具,具体用法和下载可以百度或者加我qq:1721854283

                                        手工进行sql注入

一般如果对方网站有waf拦截的话基本上是使用不了工具的,这是我们就要手工注入,上面已经提到了sql注入点一定是在与数据库有交互的地方,可以再这些网站参数后面加入单引号或者and 1=1 1=2  来进行查看返回的报错信息从而去判断注入点

探测出sql注入点后,利用order by猜解字段数目语句查询:

order by 1

order by 2

...

order by n-1

order by n

如果n-1时返回正常,n时返回错误,那么说明字段数目为n

得到字段长度后,就可利用union select查询获得字段内容了。

and 1=2 union select1, 2, 3...., n from 表名

执行上面的查询时,在页面中会返回数字,修改查询语句中的数字为字段名,例如提交如下代码。

and 1=2 union select1, 字段1, 字段2...., n from 表名

在页面中就会返回字段内容,不必一个一个进行猜解了

实例语句:http://192.168.1.55:901/news_view.asp?id=14and 1=2 union select 1,user_name,password,4,5,6,7 from administrator

在页面返回信息中,立即获得了user_name和password字段的值(图16),比前面的方法快速高效多了

                                                   

得到帐号密码后去后台登陆,从而上传webshell,

                                     SQL注入防御的方法

网络层面:1.通过WAF设备启用防SQL Inject注入策略(或类似防护系统)2.云端防护(360网站卫士,阿里云盾等)

代码层面:1.对输入进行严格的转义和过滤(过滤原则:对用户输入的数据进行判断,用黑名单,或者白名单的方式验证,或者替换危险字符)

2.使用参数化(Parameterized)

原理:使用参数化查询数据库服务器不会把参数的内容当作sql指令的一部分来执行,是在数据库完成sql指令的编译后才套用参数运行

简单的说: 参数化能防注入的原因在于,语句是语句,参数是参数,参数的值并不是语句的一部分,数据库只按语句的语义跑

但是再好的防御也会被攻破,要是网站永远安全那我们渗透测试工程师岂不是失业了吗,本文只是大概讲述了sql注入的简单流程适合小白观看,大佬一般也不看这种东西,还有一些waf的绕过之类的以后在讲解,欢迎共同探讨或者咨询QQ:1721854283  

                                                                                                                                                            正在学习python的李治龙

                                                                                                                          


http://chatgpt.dhexx.cn/article/7Q8hv3mN.shtml

相关文章

网络安全系列之三十七 Pangolin(穿山甲)和Havij(胡萝卜)的使用

在***过程中,必然要借助于一些工具软件,像明小子和啊D都属于比较古老的软件,功能有限,而Pangolin和Havij则是两款相对功能比较强大的软件,本文将介绍它们的基本用法。实验环境采用NMPServer搭建,使用其中的…

Havij 1.152 最新破解版

Havij是一款自动化的SQL注入工具,它能够帮助渗透测试人员发现和利用Web应用程序的SQL注入漏洞。Havij不仅能够自动挖掘可利用的SQL 查询,还能够识别后台数据库类型、检索数据的用户名和密码hash、转储表和列、从数据库中提取数据,甚至访问底层…

基于PHPCMS的SQL注入(Havij)

本教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险。 目录 实验目的实验环境实验原理实验步骤第一步靶机操作第二步渗透主机操作 实验总结 实验目的 通过本实验理解SQL注入基本原理和过程,掌握菜刀和Havij等注入工具的使用…

黑客学习-SQL注入:利用Havij对PHPCMS网站进行SQL注入

SQL注入用户通过浏览器或者其他客户端将恶意SQL语句插入到网站参数中,网站应用程序未经过过滤,将恶意SQL语句带入数据库进行执行,通过数据库获取了敏感的信息或者执行了其他恶意操作。 由于SQL语句本身多样性,以及可用于构造的SQ…

42. 注入篇——Havij、Pangolin使用

前言 本小节主要讲解在渗透测试工程中使用到的两款攻击——Havij、Pangolin Havij Havij(简称:胡萝卜):是一款用于sql注入的工具,他支持MySQL、MSSql、Oracle、Sybase等数据库,而且可以支持盲注、代理、…

html交互视频如何制作,H5交互视频如何实现?

视频类作为现在H5运用最频繁的形式之一,单一化的形式已经让用户产生了疲劳效果。而交互式视频的出现则打破了视频H5一直以来的模式,赋予了用户强烈的感官体验,将视觉和触觉融合为了一体,使得体验效果更具有吸引力。 那H5视频带交互…

Unity 制作360全景视频 全景图片流程

Recorder的使用 在Unity制作360图片或者视频需要用到UnityPackage:Recorder 如果没有就在Package Manager寻找 1、在菜单栏找到Window/General/Recorder/RecorderWindow 参数说明: Animation Clip:录制动画剪辑 Movie:录制视频 Image Sequence&a…

爱剪辑怎么制作淘宝视频?详细的制作技巧,教你快速搞定淘宝主图视频

众所周知,现在打开淘宝购买某种产品时,在主界面上方展示产品的部分已经出现了视频。这也是顺应潮流的做法,通过制作短视频的方式来展示产品,能引起买家更多的兴趣和购买欲。所以很多卖家现在都会制作一个精美的淘宝主图视频,来吸引顾客。 那么如何快速制作一个精美的淘宝…

MATLAB制作动图或视频

(来点有用的)MATLAB制作动图或视频 主要函数介绍情况一:对数据进行操作情况二:对界面进行操作其他 by HPC_ZY 在CSDN发现一个类似的居然要VIP才能查看,顿时有点无语,所以自己做了一个。 如题,MA…

使用Android制作视频播放器

使用Android制作视屏播放器 目录 使用Android制作视屏播放器前言一、展示预览二、详细步骤1.准备工作2、主界面设计3、主界面java文件4、全屏界面设计 总结 前言 Android小作业,含实现本地视频播放界面,实现全屏播放视频界面,两个界面所采用…

自制计算机教程视频教程,教学视频如何制作/怎么做视频

随着网络的普及,电脑上已经不再单单只有影视剧等由专业人士拍摄与制作的高精良视频,越来越多的普通人也将自己的一些人生小经验或者将一些自己所擅长的知识领域制作成教学视频传入网上,甚至有些老师都将自己所讲授的课程录制成视频传入网上&a…

画中画视频如何制作

最近网络上很流行这个种画中画视频,如何自己可以制作出来一个令人满意画中画视频呢,其他很简单哦,只要找到方法就可以制作出来,不用羡慕别人呢,自己也可以呢,小编现在分享下操作步骤,看下大家有…

滚动字幕怎么制作,视频的滚动字幕如何制作?

相信看到这篇文章的小伙伴都想要给自己的视频添加上滚动字幕的效果,接下来小编就来给大家分享一个可以快速批量制作滚动字幕视频的简单操作方法,一起来看看吧! 第一步,运行媒体梦工厂,切换到【任务剪辑】页面&#xff…

盗版视频网站原理

几年前,包括现在,视频网站各种VIP,VVIP,SUPERVIP,整得跟国内三大运营商的各种逗逼套餐一样让人眼花缭乱。 于是,自己就花了些时间,研究了下盗版的视频网站,并且在自己购买的个人服务器上搭建了成功了。 常…

透明背景视频的制作与应用

基于AR实践的需求,某些项目会需要用到透明视频。本篇介绍透明视频在AE中的制作方法以及在blender中作为材质贴图的应用。 目录 1. AE中透明视频素材的制作 2. 透明视频导入Blender作为模型材质贴图 AE中透明视频素材的制作 【3分钟学会】抠出动漫中动态的人物动…

沙雕短视频制作

1.用到软件: 方法一:使用AE、AI、PS这三个专业软件,优点是你可以随心所欲的创作,有很多特效可以使用,缺点是需要较长的时间学习。 方法二:使用AN、AI、PS这三个专业软件,优点是AN简单好上手&a…

好听又好看!歌曲视频制作,手把手教你制作音乐视频

好听又好看的图片+音乐形式的歌曲视频,简单3步快速搞定,手把手教你具体制作歌曲视频的方法。用到的制作歌曲/音乐视频的工具是数码大师,新手或小白可以很快做好,因为它有很多转场模板而且插入图片、视频、音乐或歌词都很方便。想要亲手制作一份具有纪念意义的歌曲/音乐视频…

web 前端学习之制作网页视频

制作网页视频 1. 准备视频文件2. 引用视频文件3. 完整代码如下4. 问题解决 1. 准备视频文件 先准备好视频文件&#xff0c;放入 img 目录下 2. 引用视频文件 video 是HTML的视频标签&#xff1b; <video width"320" height"240" controls autoplay…

视频剪辑如何快速制作图文视频

手机上如何制作图文视频&#xff0c;我们首先在手机上安装“王者剪辑app”&#xff0c;启动工具并进入智能创作中的“图文视频”&#xff0c; 导入图片源素材或选择自动网络配图&#xff0c;接着输入视频内容文案和配置视频参数&#xff0c;然后点击界面右上角对勾按钮&#…

用python代码制作视频

文章目录 前言安装一个小例子最后 前言 之前制作视频一般都是pr或者是在线制作视频&#xff0c;然后昨天偶然看到了一个python的库—moviepy&#xff0c;现在我们可以写代码来制作视频了。 安装 这个库安装起来很简单&#xff0c;还是老样子pip install moviepy 不过使用win…