Category Archives: Security

黑客攻防技术宝典 — Notes 3 针对Authentication的攻击

一些漏洞     1.密码太简单   2.登录失败时系统给出具体的出错信息,帮助黑客选取针对性的攻击措施   3.把用户名/密码丢进了Cookie,然后该Cookie被其他用户获得 (比如:“一周内不必登录”)   4.用户回答“忘记密码”相关问题后,系统没有发一封重置密码的邮件,而是直接把密码显示出来,或者让用户验证通过,去执行敏感的操作   5.服务器端代码逻辑有问题。比如在发生数据库异常后继续让用户成功登录     6.多阶段登录的漏洞:服务器代码错误地假定用户已经通过了上一阶段

黑客攻防技术宝典 — Notes 4 针对Session的攻击

这一章很有意思,值得好好研究 Session管理的 漏洞主要有两种:    1. Session Token的编码规则很容易被识破,因此很容易被伪造    2. Session Token很容易被人截获,截获者可以用这个Token冒充用户干些事情 1. Token编码规则被识破   常见漏洞:       1.对明文的Token只使用了简单的模糊算法,比如Base64, Hex等      2.采用了简单的递增机制来生成Token      3.简单地使用当前毫秒数来构造Token      4.采用的随机算法的随机性太弱   一些探测技巧:      1.Token中有些字节并不起作用。你可以试删最后一个字节,再重新发出请求,看看还能否操作      2.以A登录,看看Token;再以AA登录,看看Token;… 或者能看出什么门道      3.几秒内迅速登录尽量多次,取得多个Token样本,观察他们随时间的变化规律      4.如果能看到服务器端的代码,就可以知道生成Token的算法 2. Session Token被人截获    常见漏洞:       1.页面没有使用Https         a.受保护页面并没有使用https,导致Cookie中的Token被Sniffer截获         b.受保护页面使用了https,但首页未使用,并且登录后Token不变! 如果Token在首页时被截获,截获者可以等用户登录后使用Token去到受保护的页面         c.受保护页面使用了https,但从未受保护页面去到受保护页面后Token未变       2.URL中带了Token         a.URL中带了token,然后访问日志文件给了别人         b.在Google中查询 […]

黑客攻防技术宝典 — Notes 2 避开客户端控件

可攻击的常见漏洞有:   1.Hidden 表单域   2.Cookie (用Paros之类的代理服务器可以拦截请求并修改Cookie值)   3.Session-ID   4.URL参数   5.服务器为了防止攻击,可能会对上述值进行HASH/加密。但攻击者可以想办法找出服务器使用的Hash/加密算法,比如有的服务器会用简单的Base64编码   6.绕开javascript校验和ActiveX的操作   7.反编译Applet 或 Flash 防御招术:    1.尽量不要把敏感数据传到客户端。比如说“价格”,总是可以从数据库里拿的,没必要传到客户端    2.服务端总是要去校验    3.当服务端发现攻击时,应该记下日志,有必要的情况下还要通知管理员,并且冻结用户的账户等等。

十大网站漏洞扫描器

原贴: http://sectools.org/web-scanners.html Nikto : A more comprehensive web scanner Paros proxy : A web application vulnerability assessment proxy WebScarab : A framework for analyzing applications that communicate using the HTTP and HTTPS protocols  (只是帮助记录HTTP报文信息,并非真正的漏洞扫描) WebInspect : A Powerful Web Application Scanner (非免费) Whisker/libwhisker : Rain.Forest.Puppy’s CGI vulnerability scanner and library (被Nikto集成了) Burpsuite : An integrated […]

黑客攻防技术宝典 — Notes 1 解析网站找出漏洞

攻击的第一步就是: 枚举网站功能及其特征,然后通过分析找出漏洞 列出网站的所有功能   可以先以常规方式浏览网站一些URL。在这些URL的基础上,利用爬虫将其扩充,以达到穷尽网站功能的目标。常用爬虫工具有:Burp Spider、WebScarab和Paros 找出隐藏的内容   隐藏的内容可以访问,但其URL并没有通过链接暴露出来。这些功能很有可能是漏洞。   查找隐藏内容的办法:      1.有些爬虫可以自动用一些常用的URL来试探,比如 /admin, /account.      2.自已做一些分析,比如,如果已发现addDocument.do这样的链接,那可能就会有removeDocument.do,如果这个removeDocument.do没有权限控制的话,那我们就可以用游客身份删掉一些东西。      3.用Google搜搜。比如 site:www.test.com      4.观察该网站开发者所发的技术贴子,找出一些蛛丝马迹。有些开发者会把自己的名字留在CSS/JAVASCRIPT/HTML注释里      5.在URL中加一些常用的参数,或者改变一些布尔参数的值,比如 debug=true 找出网站的技术特征    找到这些特征,看看是否已经有众人所知的漏洞,比如 Tomcat某版本存在List漏洞    具体办法:       1.Response头中的 Server信息(服务器可能会有意伪造这个东西,这时可以用Httprint找出真相)       2.根据文件扩展名确定开发语言:如asp, jsp,py       3.故意搞个404错误,可能可以看出对方的服务器软件是什么       4.Session ID. 比如jsessionid=xxx 就表明对方用的是JAVA       5.如果能看出对方使用的开源组件也不错       6.有些参数名可能就是底层所用技术的关键词,比如 orderBy

Something about Triple Des Algorithm

http://www.informit.com/articles/article.aspx?p=26343&seqNum=4 Encrypting and Decrypting Data Although SSL may handle most of your cryptography needs, you may discover that you need to manually encrypt and decrypt data from time to time. Basically, to encrypt or decrypt data, you need a key and a cipher. You can use the SecretKeyFactory to generate new keys. You can either […]

NoSuchAlgorithmException: DESede/ECB/PKCS5Padding

To solve this problem, you may want to check your security provider. Or, you can just check your code of Key generation. For example, if you find SecretKeyFactory keyfactory = SecretKeyFactory.getInstance(“DESede/ECB/PKCS5Padding”); Then you are wrong at coding. Instead, you should write SecretKeyFactory keyfactory = SecretKeyFactory.getInstance(“DESede”) In other words, only the algorithm part can be accepted […]

关于网络信息安全的对谈录

场景:张三向李四写一封信 菜鸟1:送信途中有人私拆信件,偷看信件内容,咋办? 大师:将信件内容( 明文)转换( 加密)成一串莫名奇妙的数字和字母( 密文),偷看者看不懂,但是李四可以采用跟张三事先约定的办法,将密文变回( 解密)信件内容。 菜鸟2:具体用什么办法来加密和解密呢? 大师:办法很多。最直接的一种就是采用一对公开的加密/解密算法,双方再打电话约定一个口令( 密钥),张三通过加密算法和口令将信件加密,李四收到密文后,再用解密算法和口令将密文解密。私拆信件的人虽然知道解密算法,但是没有口令,所以无法将信件内容解密。 菜鸟3:还要打电话约定口令啊?这多麻烦。如果电话也有人偷听怎么办?还有,如果张三不认识李四,怎么打电话啊? 大师:口令的传输的确很麻烦。干脆这样,口令就不传了,只有自己知道( 私钥)。那怎么加密解密呢?伟大的数学家们给收信者李四想出了一个完美的办法。他除了有一个秘密的口令,同时还在脑门上贴一个公开的口令( 公钥),这个口令谁都知道。张三写信时,用这个公开的口令加密信件,而加密后的内容只有通过李四的私钥才能解密。所以,私拆信件的人就没办法了。 菜鸟4: 嗯,信件加密的问题是解决了。不过,我突然想到一个问题。张三写信骂了李四,然后李四找他当众理论,张三却百般抵赖,说这封信是电脑打出来的,不是他的笔迹,怎么办? 大师:那就要让张三写信时在信尾签名( 数字签名)。 菜鸟5: 签名要不要加密啊?否则私拆信件的人知道张三跟李四有来往,多不好 大师:要的。张三用自己的私钥将签名加密,李四再用张三脑门上的公钥将它解密。 菜鸟6:有人说张三是个大骗子。他其实是个流串犯,真名叫王二流子,然后冒名叫做张三。 大师:验他的身份证( 证书)。身份证会写他的名字,和他的公钥(就是他脑门上那个) 菜鸟7:身份证是谁发的啊? 大师:当然是公安局了( 认证中心,CA)。 菜鸟8:如果连他的身份证都是假的呢? 大师:每个合法的身份证,都是经过公安局签发的,公安局提供提供了一套防伪技术。具体来说,公安局会通过自己的私钥将张三的身份证加密(没错,公安局本身也有密钥)后再发给张三,李四如果怀疑张三,可以用公安局的公钥将张三的身份证解密,然后看一下里面的名字是不是“张三”。如果王二流子想以“张三”的名义伪造身份证,那他要把公安局也收买了才行。 菜鸟9:嗯,这下无懈可击了。不过,你别嫌我话多,我问最后一个问题,如果私拆信件的人吃饱了没事干,在信件里插入了几句话,李四收到后肯定会莫名奇妙的,怎么办? 大师:这难不倒伟大的数学家们。他们规定,张三写完信后,要付上信件内容的 摘要,这个摘要也是一串看不懂的东西,并且,没办法反转回来。具体怎么摘要,也是数学家们规定好的。李四收到信后,也把信件内容进行一下摘要,然后再和张三附的摘要比对一下。如果拆信的人偷改了信件的内容,那么进行摘要后就和张三附的原摘要对不上了。这时李四就不会把这封信当真了。