用户
搜索

该用户从未签到

i春秋-呆萌菜鸟

Rank: 1

3

主题

6

帖子

32

魔法币
收听
0
粉丝
0
注册时间
2015-11-2
发表于 2015-11-2 10:53:40 96538
课程体验报告
  
报告名称
  
初识SQLMAP
课程名称
您也可以做专家—“SQLMAP”网站注入测试工具
课程知识点
1.        SQLMAP:SQLMAP是一款用Python语言编写的开源的渗透测试工具,可以自动化的探测SQL注入漏洞和控制数据库服务器。
  
2.  SQL注入:攻击者把SQL命令插入到输入的字符串中,欺骗服务器执行恶意的SQL命令。
  
例:一个简单的登录程序,select  count(*) from T_Users where UserName=' "+username+" ' and  Password='"+password+"',这条语句的作用是计算出数据库中T_User表内有多少条Username  = ‘xxx’并且Password  = ‘xxx’的数据。
  
正常情况下,输入正确的用户名密码,返回结果大于0,输入错误,返回结果等于0。例如输入用户名:Admin 密码:admin233  
  
语句为:select  count(*) from T_Users where UserName=’Admin’ and Password=’admin233’
  
如果数据库中存在这个账号,也就是说有符合条件的数据,返回结果会大于0,如果数据库中不存在这个账号或者密码错误,返回结果为0,程序可由此判断用户名密码是否输入正确。
  
问题就在于,这条语句中,UsernamePassword没有经过任何处理,拼接的SQL语句存在注入漏洞。攻击者可以精心构造一条SQL语句执行恶意命令。例如:输入 用户名:Admin  密码:1’ or ‘1’=’1
  
   语句为:select  count(*) from T_Users where UserName = ‘Admin’ and Password = ‘1’ or ‘1’=’1’
  
很明显,这条语句造成的后果是输入错误的密码也可以登录Admin的账号。
  
3.SQL注入漏洞的判断:一般来说,SQL注入一般存在于形如:http://xxx.xxx.xxx/abc.asp?id=XX等带有参数的动态网页中,有时一个动态网页中可能只有一个参数,有时可能有N个参数,有时是整型参数,有时是字符串型参数,不能一概而论。总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入。
  
  
4.SQLMAP使用方法:Windows下使用cmd,Linux使用terminal进入sqlmap.py所在目录,执行python  sqlmap.py –参数。
  
:python sqlmap.py –h查看帮助。
  
-u URL, --url=URL    Target URL (e.g. "http://www.site.com/vuln.php?id=1")
  
    --tables            Enumerate DBMS database tables
  
--columns           Enumerate DBMS database table columns
  
--schema            Enumerate DBMS schema
  
--dump             Dump DBMS database table entries
  
--dump-all           Dump all DBMS databases tables entries
  
-D DB               DBMS database to enumerate
  
-T TBL               DBMS database table(s) to enumerate
  
-C COL              DBMS database table column(s) to enumerate
  
  
在本课中,python sqlmap.py -u  "http://www.test.com/Art_Show.php?id=2" -D mys -T zzcms_admin -C  name,password –dump语句就可以查看到数据库中的账号密码。
  
  
5:防范SQL注入攻击:使用参数化查询,过滤转义相关参数,使用防护软件,使用专业的漏洞扫描工具来寻找可能被攻击的点
推荐理由
对于初次接触SQL注入的人来说,这节课是个良好的开端。如果说各种远控木马让你感受到守株待兔、诱敌上钩的乐趣,那么SQL注入会让你体验到主动出击的快感。
  
本课讲解了如何手工判断注入点、如何使用工具进行注入,学完之后会对sql注入攻击有大概的了解。
  
知识体系上,对于SQL注入漏洞的利用、SQL注入漏洞的防护以及判断有明确详细的讲解。
  
难易程度上,适合刚接触或者从未接触过SQL注入的人,不过学习者最好掌握基本的数据库、SQL知识。课程用一次实战简单明了的介绍了SQL注入的攻防知识,增强了学习的乐趣。
课程建议
1. SQL注入原理:课程没有讲解SQL注入的原理,对于新手来说,可能都不知道什么是数据库,什么是SQL,也许拿着工具拖了库都不知道自己在干什么。
  
2. 手工注入:课程没有讲解手工注入,这样只学会了使用别人编写的工具,对原理却一无所知,只看见屏幕上一行行代码闪动,却不知道这背后到底发生了什么。
  
3. 课程视频重复?:“您也可以做专家—“SQLmap”网站注入测试工具”、“做好防御还被黑?—绕过防注入脚本的“Tamper”工具”,这两节课的视频是同一个视频,内容一模一样。
  
4. 软件细节问题:SQLMAP使用过程中,经常会出现一些选项,例如:“GET parameter ‘id’ is vulnerable. Do you want to keep testing the  others (if any)? [y/N]”。这里直接选择了N,但是没有说为什么,让人感觉很疑惑。
  
5. 小i没有题:本课中的小i没有题,无法答题,其他课程中的小i都是正常的。
课程喜爱程度
★★★★★
水平有限,如有错误请指出
发表于 2015-11-2 23:56:11
谢谢楼主,非常详尽和认真!!
欢迎继续指正。
我本楚狂人,凤歌笑孔丘。
手执绿竹杖,朝别黄鹤楼。
五岳寻仙不辞远,一生好入名山游。

苟全性命于盛世,不求闻达于诸侯。
使用道具 举报 回复
发表于 2015-11-3 21:10:00
给楼主说一个非常猥琐的方法 ,如果你对python不够了解,看不明白sqlmap的python中的xml源码如何构造的话,可以在跑sqlmap的时候用wireshark抓一下包,看一下sqlmap如何构造漏洞包的,比如你用-u测试漏洞是否存在的时候,每一行都是一段攻击代码,比如会用 sleep(5)测试盲注,union select all测试union注入等等,wireshark你都能看到哦,另外如果漏洞真的存在的时候,sqlmap也会告诉你能用的payload是什么样的,那个payload很值得学习,构造的都是很经典的sql注入payload
使用道具 举报 回复
发表于 2015-11-3 21:12:56
还有楼主的第四个问题 ,这个y/n选择是 sqlmap测试的时候发现了这个参数存在注入,问你是否再测试其他的参数,因为已经发现了,所以选了n,当然,如果楼主测试的post或者get注入不止一个参数的话,可以选择y测试其他参数是否存在,当然了,一般同一个url中很有可能存在多个参数都有注入,但漏洞类型一般都一样,也有不一样的存在,所以选择y也是可以的,选择n的话,楼主就可以直接用这个参数dump数据了
使用道具 举报 回复
发表于 2015-11-4 18:49:27
k0Sh1_ 发表于 2015-11-3 21:12
还有楼主的第四个问题 ,这个y/n选择是 sqlmap测试的时候发现了这个参数存在注入,问你是否再测试其他的参 ...

谢谢 ^_^  ^_^
使用道具 举报 回复
从现在KS i春秋-核心白帽 困_醒_现_管_学_思_交_应_ 幽默灌水王
5#
发表于 2016-1-31 21:24:17
感谢支持!
使用道具 举报 回复
发表于 2016-2-14 14:51:19
小i的问题在某些不同课时是重复的,这也是一个问题
该会员没有填写今日想说内容.
使用道具 举报 回复
发表于 2016-4-3 13:47:04
感谢分享
使用道具 举报 回复
发表于 2016-10-11 10:15:43
我也在学习的路上……
使用道具 举报 回复
发表于 2019-11-25 10:40:59
评论一下,证明我已经看过这篇文章啦
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册