↑186.90(阳性(+)↑什么意思)IU/L 参考范围:  IU/L

    前面的代码将用于演示目的和解释我们的攻击原理。我们将前面的代码分成三个部分:

    出于演示目的,我们将使用前面的带漏洞的代码。此外,我们将提交下列值作为发送邮件的参数:

    表单发送的HTTP数据包:

    从攻击者的角度来看,有许多额外的字段,可以被注入在邮件标题。更多信息见RFC 822。例如,CC(抄送)或者BCC(密送)允许攻击者插入更多的消息。

    但要注意的是,我们在添加一个新的参数之前,我们必须增加一个换行符分隔每个字段。换行符的16进制值为"0x0A"。下面是一个demo code。

    这里提示一下,直接配置php.ini原生的email功能可能不太好用,配置起来也麻烦,建议采用一些第三方的Email(WP就挺不错的)进行发送,这个模块已经把相关的交互和HTTP数据包的构造封装好了。

    发送邮件后,增加了抄送的功能:

    我们在from的参数加添加subject字段:

    可以看到,原本的subject被注入语句覆盖了一部分内容,但是具体是覆盖还是附加和具体的PHP代码编写逻辑有关,因为现在CMS对Email发送的普通做法就是利用PHP进行HTTP/HTTPS数据包的构造,先在本地构造好数据包后,再想服务器发送。

    所以不同的系统对email注入的效果会有所不同。

    这里要注意的的,SMTP区分消息头部和消息主题是依据%0A%0A双换行符决定的。
    发送邮件后,我们发现消息的消息体已经被修改了。

    以上就是我在本地的PHP环境中模拟实验的结果,因为环境和程序代码处理逻辑的差异,可能在不同的环境下实验会有差异,我的经验是根据不同的PHP CMS系统的Email源代码进行分析,理清发送Email数据包的代码逻辑,有针对性的进行email 注入。

    1. 永远不要信任用户的输入字段。所有用户输入应该被认为是不可信的和潜在的恶意。应用程序不受信任的输入过程可能会变得容易受到诸如缓冲区溢出攻击、SQL注入,OS指令注入、拒绝服务和电子邮件注入。

    2. 使用正则表达式来过滤用用户提交的数据。例如,我们可以在输入字符串中搜索(r 或 n)。

    4. ModSecurity可以阻止服务器级别的电子邮件注入。利用ModSecurity,我们可以检测通过POST或GET提交的CC, BCC或目的地址,并且拒绝任何包含这些字母请求。

}

我要回帖

更多关于 阳性(+)↑什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信