0. 序
代码审计是找到应用缺陷的过程。自动化审计通常有白盒、黑盒、灰盒等多种方式。白盒指通过对源代码的分析找到应用缺陷;黑盒通常不涉及到源代码,多使用模糊测试等方式来找到漏洞;而灰盒则是黑白结合的方式,利用黑盒特性来减少白盒的计算复杂度,使用白盒的信息来衡量漏洞的有效性。
more >>代码审计是找到应用缺陷的过程。自动化审计通常有白盒、黑盒、灰盒等多种方式。白盒指通过对源代码的分析找到应用缺陷;黑盒通常不涉及到源代码,多使用模糊测试等方式来找到漏洞;而灰盒则是黑白结合的方式,利用黑盒特性来减少白盒的计算复杂度,使用白盒的信息来衡量漏洞的有效性。
more >>这篇文章是之前对CCS 2018 Code-Reuse Attacks for the Web Breaking Cross-Site Scripting Mitigations via Script Gadgets 的阅读笔记,最近整理资料发现放了挺久,于是稍做了一些整理和扩展发了出来。
国际化域名(Internationalized Domain Name,IDN)又称特殊字符域名,是指部分或完全使用特殊的文字或字母组成的互联网域名,包括中文、法语、阿拉伯语、希伯来语或拉丁字母等非英文字母,这些文字经多字节万国码编码而成。在域名系统中,国际化域名使用Punycode转写并以ASCII字符串储存。
同形异义字是利用IDN中一些非拉丁字符语种的字母与拉丁字符非常相似,字面看很难区分的特性,找到对应的字符来实现钓鱼攻击。例如16ვ.com(U+10D5)、16ဒ.com (U+1012)、16ҙ.com (U+0499) 都在一定程度上和163.com有相似性,基于一些开放的https证书服务这些域名还能取得相应的证书,进一步增加钓鱼成功的可能性。
more >>做SSRF测试的时候,常提到用类似 a 字符来bypass过滤器,之前没有做深究,偶然的一次机会,发现baidu.com(\uff41)能跳转到百度,但是bаidu.com(\u0430)会被认为是一个新的IDN域名,并不指向baidu.com。
Domato是Google Project Zero的研究员实现的一套DOM Fuzz工具,该Fuzzer挖掘出了30+来自各浏览器的漏洞,是一款比较高效的Fuzzer。
其基本思路和正常的fuzzer一样,也是利用从各个地方抓取的HTML/CSS/JS样本中所包含的语法结构和属性来生成样本。
整个fuzzer大概可以分为以下几个部分:
generator.py 根据输入的语法生成样本的引擎grammar.py 解析参数然后调用基础引擎来生成样本*.txt 用于生成HTML,CSS,js代码的语法库崩溃发生在CAttrArray::PrivateFindInl函数中。 在函数中rcx(this)指针应该指向一个CAttrArray,但它实际上指向一个CAttribute。
CAttrArray::PrivateFindInl只会执行读取操作,其返回值将被调用函数(CAttrArray::SetParsed)抛弃。
MS Edge CDOMTextNode::get_data type confusion
特别构造的JavaScript脚本可以触发Microsoft Edge的type confusion,使得可以像访问字符串一样访问C++对象。 这可能导致信息泄露,例如允许攻击者确定指向其他对象或函数的指针的值。
more >>注:最近遇到了一些奇奇怪怪的waf,想自己写一些tamper但是发现没有参考材料可以使用,因此写了这篇文章,以方便进行自定义的tamper编写。笔者笔力有限,如有错误,敬请读者们指正。
sqlmap是一个自动化的SQL注入工具,而tamper则是对其进行扩展的一系列脚本,主要功能是对本来的payload进行特定的更改以绕过waf。
more >>