赞
踩
一、前言
挖之前我们先来了解一下什么是SRC
1、什么是 SRC?SRC 是指软件漏洞报告计划(Software Vulnerability Reporting Program),它是一个公开的、协作式的漏洞管理计划。SRC 的成员会定期报告在应用程序和服务中发现的安全漏洞,以便能够制定和发布补丁程序以确保软件和系统的安全性。
2、SRC 的工作过程 SRC 的成员发现漏洞,确认漏洞,报告漏洞,修复漏洞,并公开发布漏洞信息和修复信息。
3、SRC 漏洞的类型 SRC 漏洞可以分为诸如 SQL 注入、跨站点脚本攻击(XSS)、跨站请求伪造(CSRF)、代码注入等许多类型(该知识点也是我在微信公众号推文看到的,如有侵权,请联系我,立马删除,另外该公众号为“知攻善防实验室”,推荐大家关注一下,里面有许多的技术文章值得学习)
接下来介绍一下什么是SQL注入以及它的危害:
概况:SQL注入漏洞是指攻击者通过浏览器或者其他客户端将恶意SQL语句插入到网站参数中,而网站应用程序未对其进行过滤,将恶意SQL语句带入数据库使恶意SQL语句得以执行,从而使攻击者通过数据库获取敏感信息或者执行其他恶意操作
危害:SQL注入漏洞可能会造成服务器的数据库信息泄露、数据被窃取、网页被篡改等!web页面源代码对用户提交的参数没有做出任何过滤限制,直接扔到SQL语句中去执行,导致特殊字符改变了SQL语句原来的功能和逻辑。黑客利用此漏洞执行恶意的SQL语句,如查询数据、下载数据,写webshell、执行系统命令以此来绕过登录权限限制等
二、实战过程
也是罗里八嗦了一大堆,这里直接上实战:
1、先是使用google语法进行搜索:inurl:php?id=96 公司(在后面加个公司是为了防止搜出来的全是英文,国内是无法使用谷歌的,得有点魔法才行,或者可以使用谷歌镜像,这里给个链接谷歌镜像搜索-Google镜像一个神奇的网站!
2、这里也是搜出来许多:
2、随便点进去一个测试一下是否存在注入:
这里提一嘴如何判断是否存在注入:可以在参数id的值后面加一个单引号'或者是双引号",来观察页面是否有报错,或者是在参数后面拼接and 1=1 和and 1=2 观察页面显示正不正常也可以试试 and -1 = -1 , and -1 = -2 and 1 > 0 等方法 或者直接 or sleep(5) 【当然sleep也可能被拦截】
来到主页面,id后面加一个’直接回车,观察页面变化,页面直接显示: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 '' at line 1这个是提示SQL语句语法错误,那么说明这个站有戏:
3、直接开打:
构造payloa拿到当前数据库名:)and(extractvalue(1,concat(0x7e,(select database()),0x7e))) --+
4、拿表名:) and(extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 1,1),0x7e))) --+
5、使用sqlmap验证一下:
到这里就可以停手了,毕竟也只是挖洞,也没有得到授权,还是要懂得保护自己,(小伙伴们以后对网站进行渗透之前一定要拿到该网站的授权才能够去进行下一步哦),
三、总结:
sql注入漏洞修复建议:
1、通过对SQL关键字和关键符号的过滤来避免SQL注入漏洞的发生
2、对用户的输入进行编码,基于各类数据库定义的关键字和符号的转义规则将用户的输入进行转义后组成SQL语句
3、使用预编译语句 基于各种语言的预编译功能,先将SQL语句进行编译,用户输入的内容只会被当作参数传入,不会被编译成命令
4、使用参数化查询:参数化查询是一种防止SQL注入的非常有效的方法。它通过将用户输入作为参数传递给数据库,而不是将其嵌入SQL查询中来工作。
我也是刚挖没多久,也是第一次写文章(想着记录一下)如果有写的不对的地方,还请各位师傅们指出。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。