- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
搜狐 app 分站伪 Session 认证分析
习科道展网络信息安全顾问
最具实力的网络安全专家
习科道展网络信息安全 - Silic Network Security Solutions
索引
1) Web 前端漏洞
1.1 错误回显注入
1.2 表段名前缀转换分析
2) 服务端相关推断
2.1 猜测中的登陆验证机制与表段中的Session
2.2 伪Session 认证机制
Silic Group
习科道展网络信息安全 - Silic Network Security Solutions
1) Web 前端漏洞
本份报告是针对搜狐旗下的一个分站 的分析,但是这份报告绝非一份渗
透报告,而是一份地地道道的分析报告,所以这份报告不需要授权。提前给搜狐这个分站的
安全等级打个分,中等偏下。这个站的漏洞是由习科道展安全顾问团队核心成员4 月27 日
凌晨报到团队中的,于4 月28 日开始调查和研讨。据我们所知在我们之后有所谓的大牛发
布过搜狐注入漏洞,但是目测他们可能卡在了文档的1.2 部分。
1.1 错误回显注入
服务器设置了重写,但是并不能解决部分 SQL 语句未过滤的问题,漏洞文件存在于搜
索部分。搜索模块使用GET 取值,同样也设置了重写,重写格式是:/list_search/0/$GET-n.html,
如果是要提交一个单引号也是可以的,可是会被转义的。
单引号的url 编码为%27 ,百分号% 的url 编码为%25,如果是%27 进行url 编码,就变成
了%2527 ,所以呢,我们看到/list_search/0/%2527-1.html 这个页面就把问题暴露了。
这是我们看到的MySQL 错误回显(节选):
Script: /core/entrance_web.php
SQL: SELECT * FROM [Table]stats_search WHERE q =
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near at line 1
Errno.: 1064
Silic Group
习科道展网络信息安全 - Silic Network Security Solutions
这里说明%2527 被服务器先解码为%27 后又解码为单引号,最终带入数据库执行了。这
个地方理所当然且意料之中的用order by 猜字段然后union 联合查询是失败的。同一个脚本
里面执行了多个 SQL 语句,目测一个是查询一个是增加统计的 SQL 语句,字段数不同,用
Union 是失败的。所以只好用套公式利用MySQL 的错误回显来进行注入。
我们有成型的MySQL 错误回显注入语句公式:
Q + union + select + 1 + from + (select + count(*),concat(floor(rand(0)*2),0x3a,(SQL + limit +
n,1 )),0x3a)a + from + information_schema.tables + group + by + a)b + Z
*Q 为注入语句前面系统原语句闭合,有 ’和 ’)等多种
*Z 为注入语句后面系统原语句注释掉,有#,+ --+,/*和 ’or’1’!= ’2 等多种
*SQL 为单条 SQL 查询语句
*n 为 limit 标号,标号从 0 开始计数为第一条数据
我们看下套入公式以后的注入语句:
/list_search/0/%2527union+select+1+from+(select+count(*),concat(floor(ra
nd(0)*
文档评论(0)