burpsuite暴力破解
burpsuite是黑客攻击网站的工具集成软件。最为简单的就是对账号密码的暴力破解,burpsuite暴力破解功能分为四类(1)狙击手(sniper) (2)破城锤(Brttering ram)(3)音叉(Pitchfork)(4)集束炸弹(Clusterbomb),其中最为常用的是狙击手和集束炸弹,狙击手是已知账号密码其中一个,对另一个进行准确的暴力破解。集束炸弹是在账号密码均未知的情况下,对他们同时进行暴力破解,也就是所谓的由几种搭配方式,就给你是多少遍。当时我出于好奇,使用了一个庞大的账号库和一个庞大的密码库进行集束炸弹的攻击,结果发现根本就不可能在短时间内实现破解,搭配种类实在是太多。所以,除非特定情况下,我们一般都是先知道目标账号,使用狙击手对其密码进行暴力破解。
关于验证码的绕过
burpsuite重发器可以实现对数据包申请提交数据之后,获取返还的信息,也就是说,当你重发数据之后,查看其前端代码返还的信息,就可以清楚地知道其验证码是否有效或者是否会过期,来确定能否对其进行暴力破解。
有关账号密码库
burpsuite暴力破解一般需要账号库与密码库才能更有效的进行。那么如何设置账号!
sql注入漏洞:
SQL管理庞大的数据信息,就会使用到数据库。数据库可以方便程序对所有数据信息进行统一的存储和分类组织,便于查询更新。
现在看看程序会怎样处理这个外部关键字数据。首先,查询语句变成了:“SELECT * FROM Aritcles WHERE Keywords LIKE ‘%hack%’; DROP TABLE Aritcles; --”,我们知道DROP TABLE语句是在数据库操作中删除一个指定的表的意思,现在那个查询语句的意思就变了,以中间的分号为标志,分成两个部分,首先还是正常的查出所有包含hack关键字的文章。但是接下来……
由于程序使用的数据库是微软的SQL SERVER,该数据库支持多命令语句执行,这些数据库操作的命令语句都是由分号分隔开,然后依次执行的。这里的“DROP TABLE Aritcles; --”是一个完全合法的命令语句,“–”符号是SQL SERVER数据库特有注释标识,数据库不执行任何命令。这样,当这段查询语句执行时,就会去执行一个删除Aritcles表的数据库命令。
像这样,通过控制传递给程序数据库操作语句的关键变量来获得恶意控制程序数据库,从而获取有用信息或者制造恶意破坏的,甚至是控制用户计算机系统的漏洞,就称之为“SQL注入漏洞”。
SQL注入漏洞完全是利用了将包含了某种目的的SQL语句,通过关键变量插入到程序中正常的数据库操作语句里。程序一旦发生注入漏洞,就会引发一系列安全隐患。
SQL注入漏洞是不分语言的,无论用什么语言开发的程序,只要涉及对数据库的操作,都可能存在SQL注入漏洞。虽然有时会因为编写语言的要求,或者程序设置环境的不同,导致SQL注入漏洞很难被常用的方法利用,但是总可以找到突破的方法。
《白帽子》
1.安全评估过程:资产等级划分–威胁分析–风险分析–确认解决方案。
2.习惯去分解问题,同一个问题在不同层面解决,通过良好的代码规范去保证。
3.浏览器的同源策略限制了不同源的“Document”或脚本。
对当前Document 读取或者是设置某些属性。
4.影响源的因素有Host (域名或者是IP地址,如果是IP地址则看成一个根域名),子域名,端口,协议。
第三章跨脚本的攻略
1.跨站脚本攻击是用户脚本安全的头号大敌。
2.反射性XSS是将用户输入的信息反馈给浏览器,诱惑用户点击一个恶意链接,这样才能攻击成功。反射性XSS也称非持久性XSS。
3.持久性XSS将用户信息存储在服务器上,具有很强的稳定性。
4.XSS钓鱼。XSS的攻击过程是通过浏览器中的JAVAScript脚本自动进行,缺少“与用户交互”的过程。
5.获取用户真正的IP地址
6.XSS利用字符编码
7.储存型XSS对攻击者的用处比反射性的用处要大。储存性的XSS在用户访问正常的URL时会自动触发,而反射性的XSS会修改URL,一般要就攻击者将XSS URL发送给用户点击。
8.JAVAScript的开发框架,成熟的JavaScript都会注意自己的安全问题,但是JavaScript的开发框架同时也暴露了XSS的漏洞
第四章 跨站点请求伪造(CSRF)
1.跨站点请求伪造是WEB 中最容易被忽略的一种方式,甚至很多安全工程师都不太理解其利用条件以及危害但CSRF在某些时候能够产生强大的破坏性
2.CSRF 具有强大的破坏性–即使没有XSS CFRS 也具有强大的攻击性
3.CSRF攻击是利用用户的身份操作用户的一种攻击方式,设计CSRF 预防必须理解CSRF 的攻击原理及本质。
第五章点击劫持
点击劫持是一种视觉上的欺骗手段。攻击者使用,透明的不可见的iframe覆盖在网页上进行操作,此用户在不知情的情况下点击透明的iframe页面。通过调整页面的位置可以诱使用户点击到透明的iframe页面的一些功能性按钮上。
1.拖拽劫持和数据窃取:拖拽劫持是诱惑使用户从隐藏不可见的iframe拖拽出攻击者需要的数据,然后放到攻击者就能够控制的另外一个界面,从而窃取数据。
2.在JaveScript 或者是JAVA APP的支持下攻击会变得非常隐蔽,突破了传统ClickJava的一些先天局限,所以这种新型拖拽劫持会造成更大的破坏。
第六章HTML安全
新型标签的XSS
1.iframe标签一直以来为人所诟病。挂马,XSS,ClickJacking等攻击中能看到他们不光彩的身影。浏览器厂商也一直限制iframe执行脚本的权限,比如跨窗口访问会有限制以及IE中的>标签加载的内容会被视为一个独立的源,其中的脚本将被禁止执行,单表被禁止提交,插件被禁止加载,指向其浏览器的对象链接也会被禁止。<br/> 2.浏览器实现的同源策略限制了脚本的跨越请求,但互联网的发展趋势是越来越开放的,因此跨越访问的需求也变得越来越迫切。同源策略给web开发者带来了很多困扰,他们不得不想方设法实现一些合法的跨越性技术。<br/> 第七章注入攻击<br/> 1.注入攻击是WEB安全领域最常见的攻击方式,在“跨站脚本攻击”XSS本质上是针对HTML的注入攻击<br/> 2.注入攻击的本质,是把用户输入的数据当做代码执行。这里有两个条件。一是用户能够直接的控制输入;第二个是原本程序要执行的代码,拼接了用户输入的数据<br/> 3.SQLZ注入,正常的执行的查询语句,现在变成了查询完后,再执行一个drop表的操作,是用户构造恶意数据的结果<br/> 4.注入攻击的两个条件<br/> (1)用户能够控制数据的输入–用户能够控制变量ShipCity.<br/> (2)原本执行的代码拼接用户的输入<br/> 5.“盲注”在服务器没有错回显示时完成的注入攻击。错误器没有错误回显,对于攻击者来说缺少了重要的调试信息,所以攻击者必须找到一个方法来验证注入的SQL语句是否成功。<br/> 6.数据库攻击技巧:SQL注入是数据库的一种攻击。不同的数据库有不同的功能,不同的语法和函数,针对不同的数据库SQL注入的技巧也有所不同。<br/> 7.执行命令:除了可以导出Webshell间接的执行命令外,还可以利用“用户自定义的技巧”UDF来执行命令。<br/> 8.编码问题,不同字符编码也可能会导致一些安全问题,在注入历史,曾经出现了“基于字符集”注入攻击技巧。<br/> 9.基于字符集的攻击并不限于SQL注入,凡是会解析数据的地方都会存在此可能的问题。比如XSS在攻击时由于浏览器和服务器返回的字符编码不同,也会存在字符集攻击解决方法是HTML页面的标签中只定当前的charset<br/> 10.正确的预防SQL注入<br/> (1)找出所有SQL注入的漏洞。<br/> (2)修补这些漏洞<br/> 11.使用预编译语句:预防SQL注入的最佳方式,就是使用预编译语句,绑定变量。<br/> 12.CRLF注入:CRLF 常用于不同语义之间的分隔符,因此注入CRLF字符,可以改变原有的语义。<br/> 13.CELF注入并非仅用于log注入,凡是使用CELF注入的都可以存在这种注入,比如“注入HTTP头”<br/> 小结:注入攻击是应用违背了“数据与代码分离的原则”导致的结果。它有两个条件:一是用户能够控制数据的输入,二是代码拼凑了用户输入的数据,把数据当做代码执行了。<br/> 在对抗注入时需要牢记“数据与代码分离的原则”,在“拼凑”发生的地方进行安全检查,就可以避免此类问题。<br/> SQL注入是WEB一个重要的领域,本章分析了SQL注入的技巧和预防方案。除了SQL注入外,还介绍了常见的注入攻击。<br/> 第八章文件上传的漏洞<br/> 1.文件上传漏洞是指用户上传一个可执行的脚本文件,并通过此执行文件获得执行服务器端命令的能力。这种攻击方式是最直接有效的,几乎没有什么技术门槛。<br/> 2.文件上传后常见的功能有:<br/> 上传文件是Web脚本语言,服务器的Web容器解释并执行用户上传的脚本,导致代码的执行。<br/> 上传的文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该领域下的行为(其他通过类似的方式控制策略文件的情况类似)<br/> 上传文件是病毒木马文件.黑客用以诱骗用户或者管理员下载执行。<br/> 上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器会作为脚本执行,被用于钓鱼和欺诈。<br/> 3.文件上传漏洞是指“上传Web脚本能够被服务器解析”的问题,也就是通常所说的Webshell的问题。要完成这个攻击要完成如下几个条件:<br/> 上传的文件能够被WEB容器解释执行。所以上传后的目录要是WEB容器所覆盖的路径<br/> 其次是用户能够从WEB上访问这个文件。如果文件上传了,但是用户无法通过Web访问,或者无法使WEB容器访问这个脚本,那么也不能称之为漏洞。<br/> 最终用户上传的文件能够被安全检查.格式化.图片压缩等功能改变内容,则也可能导致攻击不成功。<br/> 第九章认证和会话管理<br/> 认证的目的是能够认出用户是谁?而授权的目的是为了决定用户能够做什么<br/> 1.密码是最常见的一种认证手段,持有正确密码的人被认为是可信的。长期以来桌面软件,互联网 都普遍以密码作为基础的认证手段。<br/> 2.密码的优点是使用成本低,认证过程实现起来简单;缺点是密码认证是一种较弱的安全方案,可能被拆解<br/> 3.密码强度是设计密码方案时第一个需要考虑的问题。<br/> 4.多因素认证:中国最大的在线支付平台支付宝,就提供了很多不同的认证手段,除了支付密码外,手机动态口令,数字证书.宝令.等都可以用于支付认证。多方面认证,使认证的过程更加安全,进而保证了用户的支付安全。<br/> 5.访问权限,或者是说访问控制,广泛应用于各个系统中,是某个主题对于某个客体所要实施的某种操作,而系统对这种操作的权限就是权限控制。