源码地址:https://files.cnblogs.com/files/ssooking/60cms.zip

运行60cms目录下的Netbox.exe即可开启Asp Web服务,默认端口80

环境搭建完毕之后即可访问主页

1.漏洞分析

首先,我们分析 login.asp

  在admin目录下找到login.asp,可以发现登录页面的两个Cookies字段名分别为 cmsname 和 cmsid

继续往下看

  可以看到,网页会把输入的管理员帐号和管理员ID分别赋值给cmsname和cmsid这两个cookies值,如果密码正确就会跳转到后台首页,并添加上述的两个cookies值.

  我们再来看一下后台首页(index.asp)的源代码,发现头部引用了check.asp文件

  这个文件的作用应该就是对登陆操作进行验证,我们跟踪分析其中的代码。

<!--#include file="../inc/md5.asp"--><%
'判断用户是否登陆
if session("cmsname")="" and instr(CStr(Request.ServerVariables("SCRIPT_NAME")),site_install&AdminPath&"/login.asp")=0 then
if request.Cookies("cmsname")="" then
response.Redirect(site_install&AdminPath&"/login.asp")
elseif Session("admin_id") =null then
Response.Write("<script>alert('登陆超时!');parent.location = '"&site_install&AdminPath&"/login.asp';</script>")
else
session("cmsname")=request.Cookies("cmsname")
session("cmsid")=request.Cookies("cmsid")
end if
end if
%>

   这里可以看到,网页虽然有验证用户登录状态,但只仅仅验证了Cookies的内容,只要两个Cookies的内容都对得上,就能访问后台首页。我们查看data目录下的数据库文件,发现60cms的默认管理员为admin,默认管理员ID为1

  因此我们只要根据这两个信息伪造Cookies,即可实现越权访问后台。

2.漏洞利用

在firebug中分别添加两个cookie:cmsname,cmsid。

注意这里的日期一定要修改超过当前时间,否则Cookies无法添加

这样就添加好了cookie

此时我们访问http://localhost/admin则可以直接以admin身份进入管理后台

参考文章:

http://www.freebuf.com/articles/web/149232.html

60cms Cookies欺骗漏洞审计的更多相关文章

  1. PHP代码审计2-常用超全局变量,常用命令注入,常用XSS漏洞审计,文件包含

    超全局变量 $GLOBALS — 引用全局作用域中可用的全部变量$_SERVER — 服务器和执行环境信息$_GET — HTTP GET 变量$_POST — HTTP POST 变量$_FILES ...

  2. 再谈Cookies欺骗

    在上一篇关于cookies欺骗的随笔中,提到的解决方案是把密码MD5加密之后存入cookies中,确实这种方法实现了效果,不过把密码留在客户端等待着去被破解不是一个合适的方法,在此也感谢 @老牛吃肉 ...

  3. Cookies欺骗分析与防护

    今天来谈谈cookies欺骗是怎么回事以及如何避免. 用户在登录之后通常会保存用户信息,以便在其他需要权限的页面去验证用户信息是否具有访问权限. 有同学说我在登录的时候已经很注意SQL注入问题了,还有 ...

  4. Bugku-CTF之cookies欺骗

    Day22 cookies欺骗 http://123.206.87.240:8002/web11/ 答案格式:KEY{xxxxxxxx} 本题要点:cookie欺骗.base64编码传参  

  5. Linux安全漏洞审计工具Lynis

    Linux安全漏洞审计工具Lynis   Lynis是针对类Unix系统的审计工具,它支持Unix.Linux.FreeBSD.Mac OS多种操作系统.它能对系统实施大于400种测试,以发现39个方 ...

  6. dedecmsv5.7sp1远程文件包含漏洞审计

    dedecms5.7 sp1版本存在远程文件包含漏洞,在此记录审计复现漏洞过程. 漏洞在/install/index.php(index.php.bak)文件中,漏洞起因是$$符号使用不当,导致变量覆 ...

  7. Silic PHP大马Cookie欺骗漏洞

    $password="ebd9a3c106064a255aaee28b6eb4f21c"; if($_COOKIE['admin_silicpass'] != md5($passw ...

  8. BurpSuite intuder里保存所有网页的特定内容:以bugku的cookies欺骗为例题

    这题里想读取index.php只能一行一行的读,通过控制line参数的值.如下: 正常的writeup都是写个爬虫,但我觉得burp肯定有自带这种功能,不用重造轮子.经过学习后发现以下步骤可以实现. ...

  9. cookies欺骗-bugkuctf

    解题思路: 打开链接是一串没有意义的字符串,查看源码没有发现什么,然后查看url,发现 filename的值是base64编码的,拿去解码 发现是一个文件,那么我们这里应该可以读取当前目录下的本地文件 ...

随机推荐

  1. prufer编码

    看51nod的一场比赛,发现不会大家都A的一道题,有关prufer的 我去年4月就埋下prufer这个坑,一直没解决 prufer编码是什么 对于一棵无根树的生成的序列,prufer序列可以和无根树一 ...

  2. Java代码优化小结(三)

    (35)对资源的close()建议分开操作虽然有些麻烦,却能避免资源泄露.我们想,如果没有修改过的代码,万一XXX.close()抛异常了,那么就进入了catch块中了,YYY.close()不会执行 ...

  3. JavaScript基础笔记(十)表单脚本

    表单脚本 一.表单基础知识 JavaScript中表单对应的是HTMLFormElement类型,该类型继承自HTMLElement类型. 通过document.forms可以获得所有表单元素,通过数 ...

  4. MySql主键不区分大小写问题、查询不区分大小写问题

    一.问题一:MySql默认主键不区分大小写 实例: -- 创建混合类型 create table PlainText( Content nvarchar(50) , primary key(Conte ...

  5. php 将16进制数串转换为二进制数据的函数

    /**     * 将16进制数串转换为二进制数据的函数     * @param $hexdata     * @return string bindata     */     function ...

  6. [PA2014]Iloczyn

    [PA2014]Iloczyn 题目大意: 询问\(n(n\le10^9)\)是否是两个斐波那契数之积. 思路: \({\rm fib}(45)<10^9,{\rm fib}(46)>10 ...

  7. Yii2 RbacController示例

    RbacController 示例: <?php namespace console\controllers; use Yii; use yii\console\Controller; clas ...

  8. Java 消除过期的对象引用

    内存泄漏的第一个常见来源是存在过期引用. import java.util.Arrays; import java.util.EmptyStackException; public class Sta ...

  9. Jmeter接口测试实例3-登录

    Jmeter实例3:登录 添加http协议—添加IP.路径.方法,察看结果树,运行 登录成功

  10. vue事件对象、冒泡、阻止默认行为

    事件对象: <input type="button" name="" value="按钮" @click="show($ev ...