SQL注入漏洞全接触

合集下载

sql注入漏洞解决方案

sql注入漏洞解决方案

sql注入漏洞解决方案《SQL注入漏洞解决方案》SQL注入漏洞是一种常见的Web应用程序漏洞,攻击者可以利用该漏洞将恶意SQL代码插入到应用程序的输入字段中,从而实现对数据库的非法访问和操作。

为了有效防范和解决SQL注入漏洞,以下是一些解决方案:1. 输入验证和过滤:对于所有的用户输入数据,包括表单字段、URL参数和Cookie等,都需要进行严格的验证和过滤。

可以使用正则表达式、白名单等方法,过滤掉不符合规范的数据,避免恶意SQL代码的注入。

2. 使用参数化查询:在编写数据库查询语句时,应尽量使用参数化查询,而不是拼接字符串的方式。

通过使用预编译语句和绑定参数的方式,可以有效防止SQL注入攻击。

3. 最小权限原则:数据库用户应该按照最小权限原则进行分配。

对于普通的Web应用程序用户,可以限制其只能进行查询和更新操作,而不能进行删除和修改表结构等危险操作,从而有效降低了SQL注入的风险。

4. 错误信息处理:在应用程序中,不要将数据库错误信息直接返回给用户,特别是包含了SQL语句的错误信息。

攻击者可以利用这些信息来进行SQL注入攻击。

正确的做法是在应用程序中对错误信息进行处理,确保不会泄露敏感信息。

5. 使用ORM框架:ORM(Object-Relational Mapping)框架可以帮助开发者将对象和数据库表进行映射,避免直接操作SQL 语句,从而减少了SQL注入的风险。

综合来说,防范和解决SQL注入漏洞需要从多个方面进行努力,包括对用户输入的严格验证和过滤、使用参数化查询、合理分配数据库权限、正确处理错误信息等。

只有综合运用这些解决方案,才能有效地提高Web应用程序的安全性,避免SQL注入漏洞的发生。

SQL注入漏洞详解

SQL注入漏洞详解

SQL注⼊漏洞详解⽬录以下所有代码的环境:MySQL5.5.20+PHPSQL注⼊是因为后台SQL语句拼接了⽤户的输⼊,⽽且Web应⽤程序对⽤户输⼊数据的合法性没有判断和过滤,前端传⼊后端的参数是攻击者可控的,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。

⽐如查询、删除,增加,修改数据等等,如果数据库的⽤户权限⾜够⼤,还可以对操作系统执⾏操作。

SQL注⼊可以分为平台层注⼊和代码层注⼊。

前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输⼊未进⾏细致地过滤。

SQL注⼊是针对数据库、后台、系统层⾯的攻击!由于以下的环境都是MySQL数据库,所以先了解点MySQL有关的知识。

在MySQL5.0之后,MySQL中默认添加了⼀个名为 information_schema 的数据库,该数据库中的表都是只读的,不能进⾏更新、删除和插⼊等操作,也不能加载触发器,因为它们实际只是⼀个视图,不是基本表,没有关联的⽂件。

当尝试删除该数据库时,会爆出以下的错误!mysql中注释符:# 、/**/ 、 --information_schema数据库中三个很重要的表:information_schema.schemata: 该数据表存储了mysql数据库中的所有数据库的库名information_schema.tables:该数据表存储了mysql数据库中的所有数据表的表名information_schema.columns: 该数据表存储了mysql数据库中的所有列的列名关于这⼏个表的⼀些语法:// 通过这条语句可以得到所有的数据库名select schema_name from information_schema.schemata limit 0,1// 通过这条语句可以得到所有的数据表名select table_name from information_schema.tables limit 0,1// 通过这条语句可以得到指定security数据库中的所有表名select table_name from information_schema.tables where table_schema='security'limit 0,1// 通过这条语句可以得到所有的列名select column_name from information_schema.columns limit 0,1// 通过这条语句可以得到指定数据库security中的数据表users的所有列名select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1//通过这条语句可以得到指定数据表users中指定列password的数据(只能是database()所在的数据库内的数据,因为处于当前数据库下的话不能查询其他数据库内的数据) select password from users limit 0,1mysql中⽐较常⽤的⼀些函数:version():查询数据库的版本user():查询数据库的使⽤者database():数据库system_user():系统⽤户名session_user():连接数据库的⽤户名current_user:当前⽤户名load_file():读取本地⽂件@@datadir:读取数据库路径@@basedir:mysql安装路径@@version_complie_os:查看操作系统ascii(str) : 返回给定字符的ascii值,如果str是空字符串,返回0;如果str是NULL,返回NULL。

sql 注入漏洞(sqli)的原理和方法

sql 注入漏洞(sqli)的原理和方法

sql 注入漏洞(sqli)的原理和方法下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!1. 引言SQL注入攻击是互联网应用常见的安全漏洞之一,它是利用了应用程序中的漏洞,在用户输入的SQL查询语句中注入恶意代码,从而导致数据库遭到破坏或敏感数据被盗取。

SQL注入漏洞原理分析

SQL注入漏洞原理分析

SQL注入漏洞原理分析1.SQL语句拼接:在Web应用程序中,常常使用动态生成的SQL查询语句来与数据库交互。

一种常见的方式是将用户输入的数据直接拼接到SQL语句中。

例如,一个登录应用程序可能会使用以下SQL查询语句来验证用户的凭据:```SELECT * FROM users WHERE username = '输入的用户名' AND password = '输入的密码'```如果攻击者能够输入特殊字符作为用户名或密码,就可以修改原始SQL查询语句的结构,从而执行非法的操作。

2.构造恶意的输入:攻击者可以通过输入特殊字符来构造恶意的查询语句,以绕过应用程序的身份验证和访问控制机制。

例如,考虑以下输入:```'OR1=1;--```将该输入作为用户名或密码传递给上述SQL查询语句,将导致查询语句变为:```SELECT * FROM users WHERE username = '' OR 1=1; --' AND password = '输入的密码'```由于1=1的条件始终成立,这将绕过用户名和密码的验证,并返回所有用户的记录。

攻击者可以利用这种漏洞来执行其他恶意操作,如数据库的读写和删除。

3.盲注:在一些情况下,攻击者无法直接获取查询结果,但可以推断出一些信息。

这被称为盲注注入。

例如,应用程序可能会通过一些参数从数据库中检索敏感信息,如用户的电子邮件地址。

如果攻击者能够推断出正确的查询条件,他们可以构造恶意的输入来绕过访问控制机制,并获取目标用户的电子邮件地址。

4.预编译语句和参数化查询:预编译语句和参数化查询是一种防止SQL注入攻击的有效措施。

在这种方法中,应用程序将查询语句和用户输入分开处理,通过将用户输入作为参数传递给预编译语句来执行查询。

参数化查询使用参数绑定而不是字符串拼接,从而避免了SQL注入漏洞。

SQL注入漏洞

SQL注入漏洞

SQL注⼊漏洞SQL注⼊:web程序对⽤户输⼊数据的合法性没有判断,前端传⼊后端的参数可控的,并且参数带⼊数据库查询,攻击者可通过构造SQL语句来实现对数据库的任意操作。

1.sql注⼊原理满⾜条件:参数⽤户可控:前端传⼊后端的内容⽤户可以控制参数带⼊数据库查询:传⼊的参数拼接到SQL语句,且带⼊数据库查询。

原因:⽤户输⼊的数据被SQL解释器执⾏2.注⼊漏洞分类1)数字型注⼊当输⼊的参数为整型时,如:ID、年龄、页码,若存在注⼊漏洞,则可认为是数字型测试:单引号 and语句(1 and 1=1 , 1 and 1=2),若以上三个步骤全部满⾜,则可能存在SQL注⼊漏洞数字型注⼊常出现在ASP、PHP等弱类型语⾔。

强类型语⾔,若试图把⼀个字符串转换为int类型,会抛出异常,⽆法继续执⾏。

2)字符型注⼊当输⼊参数为字符串时,称为字符型。

数字型与字符型注⼊最⼤的区别:数字型不需要单引号闭合,⽽字符型⼀般使⽤单引号来闭合。

字符型注⼊最关键的是如何闭合SQL语句以及注释多余的代码。

注:数据库不同,字符串连接符不同, SQL server的连接符为“+”,Oracle连接符为“||”,MySQL连接符为空格3)SQL注⼊分类SQL只分为两类数字型和字符型。

其余注⼊都是在其两⼤类的不同展⽰形式,或者不同的展现位置。

由于数据库进⾏数据查询时,输⼊数据⼀般有两种:⼀种数字型,⼀种字符串型. 严格来说:数字也算字符串post注⼊:注⼊字段在post数据中(post请求中username字段存在注⼊漏洞)get注⼊:注⼊字段在get数据中cookie注⼊:注⼊字段在cookie数据中延时注⼊:使⽤数据库延时特性注⼊(sleep函数)搜索注⼊:注⼊处为搜索的地点base64注⼊:注⼊字符串需要经过base64加密3.常见的数据库注⼊数据库注⼊的利⽤⽅式:查询数据、读写⽂件、执⾏⽂件mysqlmysql数据库 5.0之后,默认在数据库存放 information_schema 的数据库,在该库中存在三个表名schemata 表⽰存储⽤户创建的所有数据库的库名tables 。

sql注入漏洞详解

sql注入漏洞详解

sql注⼊漏洞详解⼀、sql注⼊漏洞介绍 sql注⼊漏洞⼀般存在于与后台数据库交互的页⾯,编程⼈员如果没有做好数据过滤的话就很可能诞⽣sql注⼊漏洞。

⿊客利⽤这⼀漏洞向服务器提交恶意的数据,数据没有经过过滤到数据库中被当作命令运⾏,从⽽做到对数据库的增删改查操作,甚⾄可以供⿊客直接拿到服务器管理员的权限。

例:服务器后台的代码是这样的<?phpif(isset($_GET['Submit'])){$id = $_GET['id'];$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";$result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );$num = mysql_numrows($result);$i = 0;while ($i < $num) {$first = mysql_result($result,$i,"first_name");$last = mysql_result($result,$i,"last_name");echo '<pre>';echo 'ID: ' . $id . '<br>First name: ' . $first . '<br>Surname: ' . $last;echo '</pre>';$i++;}> 在服务器中就会执⾏SELECT first_name, last_name FROM users WHERE user_id = '1' union select table_name,table_schema frominformation_schema.tables; 可以很容易的获取到⽬标服务器数据库中的所有数据表。

sql注入漏洞原理、常见测试方法及防御方法

sql注入漏洞原理、常见测试方法及防御方法

sql注入漏洞原理、常见测试方法及防御方法SQL注入漏洞原理:SQL注入是一种利用Web应用程序中未正确过滤、转义或验证用户输入的漏洞,允许攻击者执行恶意的SQL语句。

攻击者可以通过在输入中插入特定的注入代码来修改应用程序的SQL查询,或者绕过身份验证、绕过访问控制或直接获取敏感信息。

常见的SQL注入测试方法:1. 基于错误的盲注:场景是当应用程序返回错误消息时,攻击者可以通过插入错误的语句来诱使应用程序返回不同的错误消息。

通过观察错误消息,攻击者可以推测出数据库结构和内容。

2. 基于时间的盲注:场景是当应用程序有时间延迟时,攻击者可以通过插入一些导致延迟的语句来判断SQL语句的执行结果。

通过观察应用程序的响应时间,攻击者可以推测出一些敏感信息。

3. 基于布尔的盲注:场景是当应用程序返回不同的响应内容时,攻击者可以通过插入布尔语句来判断SQL语句的执行结果。

通过观察应用程序的响应内容,攻击者可以推测出一些敏感信息。

防御方法:1. 输入验证和过滤:对用户输入的数据进行验证和过滤,确保只有合法的数据被传递给SQL查询。

可以使用编程语言内置的验证函数,或采用正则表达式进行输入过滤。

2. 使用参数化查询或预编译语句:通过使用参数化查询或预编译语句,可以确保用户输入的数据被正确地转义和处理,从而避免SQL注入漏洞。

3. 最小权限原则:数据库用户应该被授予最小的权限,以限制其对数据库的访问。

具体来说,应该禁止数据库用户执行DDL语句,只允许执行必要的DML操作。

4. 异常处理:在应用程序中正确处理异常,不要将详细的错误信息暴露给攻击者。

错误信息应该记录在日志中,而不是直接显示给用户。

5. 定期更新和修补:及时更新和修补数据库和应用程序中的安全漏洞,以确保系统的安全性。

同时,定期进行安全审计和漏洞扫描,及时发现和修复潜在的SQL注入问题。

SQL注入漏洞

SQL注入漏洞

SQL注⼊漏洞
1、先在虚拟机的windows7中安装phpstuday
1)、先从官⽹下载软件安装包
2)、下载完成后从百度上查找安装的教程,安装完成后启动phpstuday
3)、在⽹站的根⽬录下可以进⾏查看
2、搭建dvwa环境
1)、先从⽹上下载dvwa
2)、下载解压后将⽂件夹放到⽹站根⽬录下(为了⽅便将名字改为了dvwa)
3)、把dvwa\config下的config.inc.php.dist改为config.inc.php后打开将密码改成”root”或者其他⽅便记住的密码。

4)、保持phpstudy开启状态,随便进个浏览器,地址栏输⼊:localhost/dvwa /setup.php中进⾏数据库创建,创建完成后会⾃动跳转到登录界⾯
5)、登录界⾯的默认账号是:admin,密码是:password,登录成功后会显⽰以下界⾯
3、使⽤sqlmap获取数据库的相关内容
1)、先从⽹上下载sqlmap.py(要想运⾏前提要安装python环境)
2)、进⾏测试
3)、从浏览器上进⾏登录dvwa后使⽤sqlmap配合burpsuite获取相关数据内容
先在sqlmap的⽬录下创建⽂件0313.txt
⽤浏览器启动代理后登录dvwa后开启burpsuite进⾏代理,在sql漏洞那⾥随便输⼊⼀个数字后,会把拦截的发送到burpsuite 点击右键copy to file到刚才创建的0313.txt中
⽤sqlmap进⾏注⼊测试后发现有漏洞
随后进⼊数据库进⾏拖库
在C:\Users\nmlwh0\AppData\Local\sqlmap\output\192.168.17.128\dump\dvwa⽬录下查看。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如果你以前没试过SQL注入的话,那么 第一步先把IE菜单=>工具=>Internet选 项=>高级=>显示友好 HTTP 错误信息前 面的勾去掉。否则,不论服务器返回什么 错误,IE都只显示为HTTP 500服务器错误, 不能获得更多的提示信息。

在网站首页上,有名为“IE不能打开新窗口的多种解决方 法”的链接,地址为: /showdetail.asp?id=49,我 们在这个地址后面加上单引号’,服务器会返回下面的错 误提示: Microsoft JET Database Engine 错误 '80040e14' 字符串的语法错误 在查询表达式 'ID=49'' 中。 /showdetail.asp,行8 从这个错误提示我们能看出下面几点: 1.网站使用的是Access数据库,通过JET引擎连接数据库, 而不是通过ODBC。 2.程序没有判断客户端提交的数据是否符合程序要求。 3.该SQL语句所查询的表中有一名为ID的字段。 从上面的例子我们可以知道,SQL注入的原理,就是从 客户端提交特殊的代码,从而收集程序及服务器的信息, 从而获取你想到得到的资料。
接着,将查询条件替换成SQL语句,猜解表名,例如: ID=49 And (Select Count(*) from Admin)>=0 如果页面就与ID=49的相同,说明附加条件成立,即表 Admin存在,反之,即不存在(请牢记这种方法)。如此循 环,直至猜到表名为止。 表名猜出来后,将Count(*)替换成Count(字段名),用同 样的原理猜解字段名。 有人会说:这里有一些偶然的成分,如果表名起得很复杂没 规律的,那根本就没得玩下去了。说得很对,这世界根本就 不存在100%成功的黑客技术,苍蝇不叮无缝的蛋,无论多 技术多高深的黑客,都是因为别人的程序写得不严密或使用 者保密意识不够,才有得下手。 有点跑题了,话说回来,对于SQLServer的库,还是有办 法让程序告诉我们表名及字段名的,我们在高级篇中会做介 绍。
最后,在表名和列名猜解成功后,再使用SQL语句,得出字段的 值,下面介绍一种最常用的方法-Ascii逐字解码法,虽然这种方 法速度很慢,但肯定是可行的方法。 我们举个例子,已知表Admin中存在username字段,首先,我 们取第一条记录,测试长度: /showdetail.asp?id=49 and (select top 1 len(username) from Admin)>0 先说明原理:如果top 1的username长度大于0,则条件成立; 接着就是>1、>2、>3这样测试下去,一直到条件不成立为止, 比如>7成立,>8不成立,就是len(username)=8 当然没人会笨得从0,1,2,3一个个测试,怎么样才比较快就看各自 发挥了。在得到username的长度后,用mid(username,N,1) 截取第N位字符,再asc(mid(username,N,1))得到ASCII码, 比如: id=49 and (select top 1 asc(mid(username,1,1)) from Admin)>0 同样也是用逐步缩小范围的方法得到第1位字符的ASCII码,注意 的是英文和数字的ASCII码在1-128之间,可以用折半法加速猜 解,如果写成程序测试,效率会有极大的提高。
组员:区家威(演讲)、汤君强和陈志响(收 集资料)、童景锋和郭光志(编辑)
SQL注入漏洞全接触 SQL
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员 也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经 验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户 输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提 交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的 数据,这就是所谓的SQL Injection,即SQL注入。 SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的 Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注 入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时 间都不会发觉。 但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的 情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成 功获取想要的数据,是高手与“菜鸟”的根本区别。 根据国情,国内的网站用ASP+Access或SQLServer的占70%以上, PHP+MySQ占L20%,其他的不足10%。在本文,我们从分入门、 进阶至高级讲解一下ASP注入的方法及技巧,PHP注入的文章由NB 联盟的另一位朋友zwell撰写,希望对安全工作者和程序员都有用处。 了解ASP注入的朋友也请不要跳过入门篇,因为部分人对注入的基本 判断方法还存在误区。大家准备好了吗?Let's Go...
不同的数据库的函数、注入方法都是有差异的,所以在注入之前,我 们还要判断一下数据库的类型。一般ASP最常搭配的数据库是Access 和SQLServer,网上超过99%的网站都是其中之一。 怎么让程序告诉你它使用的什么数据库呢?来看看: SQLServer有一些系统变量,如果服务器IIS提示没关闭,并且 SQLServer返回错误提示的话,那可以直接从出错信息获取,方法 如下: /showdetail.asp?id=49 and user>0 这句语句很简单,但却包含了SQLServer特有注入方法的精髓,我 自己也是在一次无意的测试中发现这种效率极高的猜解方法。让我看 来看看它的含义:首先,前面的语句是正常的,重点在and user>0, 我们知道,user是SQLServer的一个内置变量,它的值是当前连接 的用户名,类型为nvarchar。拿一个nvarchar的值跟int的数0比较, 系统会先试图将nvarchar的值转成int型,当然,转的过程中肯定会 出错,SQLServer的出错提示是:将nvarchar值 ”abc” 转换数据 类型为 int 的列时发生语法错误,呵呵,abc正是变量user的值,这 样,不废吹灰之力就拿到了数据库的用户名。在以后的篇幅里,大家 会看到很多用这种方法的语句。
首先,不一定每台服务器的IIS都返回具体错误提示给客 户端,如果程序中加了cint(参数)之类语句的话,SQL 注入是不会成功的,但服务器同样会报错,具体提示信息 为处理 URL 时服务器上出错。请和系统管理员联络。 其次,部分对SQL注入有一点了解的程序员,认为只要 把单引号过滤掉就安全了,这种情况不为少数,如果你用 单引号测试,是测不到注入点的 那么,什么样的测试方法才是比较准确呢?答案如下: ① /showdetail.asp?id=49 ② /showdetail.asp?id=49 and 1=1 ③ /showdetail.asp?id=49 and 1=2 这就是经典的1=1、1=2测试法了,怎么判断呢?看看上 面三个网址返回的结果就知道了:
有SQL语言基础的人,在SQL注入的时候成功率比不熟悉 的人高很多。我们有必要提高一下自己的SQL水平,特别 是一些常用的函数及命令。 Access:asc(字符) SQLServer:unicode(字符) 作用:返回某字符的ASCII码 Access:chr(数字) SQLServer:nchar(数字) 作用:与asc相反,根据ASCII码返回字符 Access:mid(字符串,N,L) SQLServer:substring(字 符串,N,L) 作用:返回字符串从N个字符起长度为L的子字符串,即N 到N+L之间的字符串 Access:abc(数字) SQLServer:abc (数字) 作用:返回数字的绝对值(在猜解汉字的时候会用到)
/showdetail.asp?id=49 and (select count(*) from msysobjects)>0 如果数据库是SQLServer,那么第一个网址的页面 与原页面 /showdetail.asp?id=49 是大致相同的;而第二个网址,由于找不到表 msysobjects,会提示出错,就算程序有容错处理, 页面也与原页面完全不同。 如果数据库用的是Access,那么情况就有所不同, 第一个网址的页面与原页面完全不同;第二个网址, 则视乎数据库设置是否允许读该系统表,一般来说是 不允许的,所以与原网址也是完全不同。大多数情况 下,用第一个网址就可以得知系统所用的数据库类型, 第二个网址只作为开启IIS错误提示时的验证。
顺便说几句,众所周知,SQLServer的用户sa是个等同 Adminstrators权限的角色,拿到了sa权限,几乎肯定可以 拿到主机的Administrator了。上面的方法可以很方便的测 试出是否是用sa登录,要注意的是:如果是sa登录,提示是 将”dbo”转换成int的列发生错误,而不是”sa”。 如果服务器IIS不允许返回错误提示,那怎么判断数据库类 型呢?我们可以从Access和SQLServer和区别入手, Access和SQLServer都有自己的系统表,比如存放数据库 中所有对象的表,Access是在系统表[msysobjects]中, 但在Web环境下读该表会提示“没有权限”,SQLServer 是在表[sysobjects]中,在Web环境下可正常读取。 在确认可以注入的情况下,使用下面的语句: /showdetail.asp?id=49 and (select count(*) from sysobjects)>0
可以注入的表现: ① 正常显示(这是必然的,不然就是程序有错误了) ② 正常显示,内容基本与①相同 ③ 提示BOF或EOF(程序没做任何判断时)、或提 示找不到记录(判断了rs.eof时)、或显示内容为 空(程序加了on error resume next) 不可以注入就比较容易判断了,①同样正常显示, ②和③一般都会有程序定义的错误提示,或提示类 型转换时出错。 当然,这只是传入参数是数字型的时候用的判断方 法,实际应用的时候会有字符型和搜索型参数,我 将在中级篇的“SQL注入一般步骤”再做分析。
相关文档
最新文档