![区块链安全入门与实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/458/35537458/b_35537458.jpg)
2.5.2 案例分析
1.XSS测试
XSS是最常见的Web漏洞之一,亦是客户端脚本安全的头号大敌,在各大漏洞提交平台也经常见到XSS的漏洞提交。XSS攻击的危害巨大且可利用处繁多,如XSS钓鱼、Cookie劫持、获取用户真实IP等。
我们在对某交易所进行测试时,发现在资产充值的付款钱包地址处可以输入任意字符,没有对输入的字符进行过滤和编码。初步测试时弹框成功,进一步写入利用XSS获取Cookie的脚本。等待一段时间后,成功获取到后台管理员Cookie,并以此成功登录后台,在后台可任意进行转账和充值操作,且存在大量用户信息。
图2.24所示为测试XSS时的截图。
![](https://epubservercos.yuewen.com/06552C/18978648401604606/epubprivate/OEBPS/Images/2a24.jpg?sign=1738891615-671L7qBzHZOXY4btnaw4LWW96buRsuMl-0-8be516a722a9bf2d49f1a3ad55fa91cb)
图 2.24
操作成功作的弹框如图2.25所示。
![](https://epubservercos.yuewen.com/06552C/18978648401604606/epubprivate/OEBPS/Images/2a25.jpg?sign=1738891615-AHCW2DM4BUMzCx2ki3F6RrLEc2X1qiUC-0-f4fb91bb63d78bd227829e21c7353a5f)
图 2.25
成功获取后台管理员Cookie,如图2.26所示。
![](https://epubservercos.yuewen.com/06552C/18978648401604606/epubprivate/OEBPS/Images/2a26.jpg?sign=1738891615-R6FwR3obF0PjEQ58pEsvb1ZGyhQ43dKh-0-f0e2ca3adcceb59327e9a075608a809b)
图 2.26
用管理员Cookie登录后台,如图2.27所示。
![](https://epubservercos.yuewen.com/06552C/18978648401604606/epubprivate/OEBPS/Images/2a27.jpg?sign=1738891615-aQXJ05xdDUOyFDNpgRrc7PJeljACEY4d-0-32c938b55edc1cdb5bf56d9fffa88215)
图 2.27
2.SQL注入测试
开发者和网络安全人员对SQL应该非常熟悉了,OWASP TOP 10多次把数据库相关的SQL注入攻击列在榜首,也足以看出其危害很大。SQL注入漏洞的产生原因主要是Web应用程序对用户输入的数据没有进行合法性判断,攻击者可以控制前端传入后端的参数,利用参数代入数据库查询,通过构造不同的SQL语句实现对数据库的任意操作。鉴于其危害性巨大,我们在对交易所进行测试时,对SQL注入类漏洞会进行全面、细化的排查。
我们被授权测试某交易所时,在一个提交GET请求的数据包中,发现疑似注入点。进行手工测试后,经验证发现存在延时注入,之后使用工具进一步测试,得到了数据库表、用户名、密码等数据库存储的相关信息。
图2.28所示为手工注入测试过程。
![](https://epubservercos.yuewen.com/06552C/18978648401604606/epubprivate/OEBPS/Images/2a28.jpg?sign=1738891615-HA3557Wz9j7bHRbNhMx6I3m2QjsF53Nf-0-b0fba42c2f3944f9e3837572b66c2017)
图 2.28
工具测试过程如图2.29所示。
3.代码注入测试
代码注入漏洞与SQL注入漏洞同属注入类型,其危害也相当巨大,是攻击者经常用的获取网站权限的“利器”。产生这种漏洞大多是因为部分开发人员的编程习惯并不安全,例如,经常使用一些类似于eval()、system()等的危险函数。下面用一个实例说明一下此类漏洞的危害。
![](https://epubservercos.yuewen.com/06552C/18978648401604606/epubprivate/OEBPS/Images/2a29.jpg?sign=1738891615-Mr0hw5PK8EettDkUn8eIe8oXBsTwtXf8-0-3e18c579048883d0fa6ecb3f89cd0e5e)
图 2.29
我们在对某交易所进行测试时,发现交易所的某相关域名下报错信息提示中间件及版本为ThinkPHP 5.0.11,随即利用其已公开的一个代码执行漏洞写入shell,连接成功后拿下网站权限。
ThinkPHP支持调试模式,默认情况下是开启状态(5.0.10+版本开始,默认关闭调试模式,需要用户自己开启)。调试模式以除错方便优先,而且在出现异常时可以显示尽可能多的信息,但是如果在生产环境中依然开启了debug模式,会导致敏感信息泄露,给攻击者提供入侵辅助。所以在开发完成后,真正进行项目部署时,要修改应用配置文件(application/config.php)中的app_debug配置参数:
// 关闭调试模式 'app_debug' => false,
如果网站开启了debug模式,此时访问网站域名下不存在的路径就会报错,泄露敏感信息,如图2.30所示。
![](https://epubservercos.yuewen.com/06552C/18978648401604606/epubprivate/OEBPS/Images/2a30.jpg?sign=1738891615-aUq5UDDZdyM9DmpK8oKHMOGRS7X9CjdH-0-b476ba2038d36f5036d5efece1d5a9b2)
图 2.30
根据ThinkPHP相关版本漏洞验证漏洞是否存在,可以看到禁用方法,如图2.31所示。
![](https://epubservercos.yuewen.com/06552C/18978648401604606/epubprivate/OEBPS/Images/2a31.jpg?sign=1738891615-pkY0AenLc8X7zrD0eYIHKYrvdtIpN5Ge-0-11ba043e112b659ac3bc8cb0161a4794)
图 2.31
写入木马后,连接成功,拿到网站管理员权限,如图2.32所示。
![](https://epubservercos.yuewen.com/06552C/18978648401604606/epubprivate/OEBPS/Images/2a32.jpg?sign=1738891615-VYoy1nvUVzr2AwxQQGCX2PqQ2bKHiOaw-0-9208228646adb0d6d79dff0bd5b9a400)
图 2.32