SemCMS v2.7 密码找回漏洞

先在本地搭建好环境。

访问后台登录页面如下:

image.png

先来看看正常的找回密码的过程。

首先,查看 tfmp_Admin/index.html 的源码:

image.png

从代码可以看到,当点击登录按钮旁边的链接“如果忘记账号与密码,试试找回?”,时,会执行 js的views() 函数,该函数是弹出一个对话框并向SEMCMS_Remail.php?type=find 发送请求,让用户填写要接收重置后密码的邮箱地址,如下:

image.png

SEMCMS_Remail.php 文件中,当type=find时,代码如下:

image.png

可以看到,就是构造上面那个要求输入E-mail的表单,点击“确认找回”按钮,该表单会提交到 ../Include/web_email.php?type=findpassword,看一下 web_email.php 中 type=findpassword 时的代码:

image.png

代码会根据用户输入的E-mail地址,查找 sc_user 表,看是否存在使用该E-mail地址的用户,如果存在,则随机生成4位数的认证码,并将其拼接到一个密码重置链接中,最后以邮件的形式发送给用户。用户点击邮件中的密码重置链接即可;但如果不存在,则弹出对话框,提示“此邮箱不存在!”,如图:

image.png

这里假设知道了管理员的邮箱,由于认证码是随机的4位数,这里很容易想到暴力破解。但通过 ../Include/web_email.php?type=findpassword 无法进行暴力破解,因为如上面代码所示,每次进入 if ($Type == 'findpassword') 语句块,认证码会重新生成。所以只能看看有没有别的地方可以利用。

回头再查看 index.html 的代码:

image.png

当请求参数 type=ok 时,SEMCMS_Remail.php后面跟的参数type也是ok,而前面提到,这种情况下,SEMCMS_Remail.php会构造另外一个表单,如下:

image.png

点击“确认找回”按钮,会提交到 ../Include/web_email.php?type=findok,web_email.php 相应部分的代码如下:

image.png

可以看到,密码会经过md5加密后再存入数据库中。
因此,这里可以通过 http://localhost/semcms_php_v2.7/tfmp_Admin/index.html?type=ok&umail=41864438@qq.com 弹出的表单,提交表单,使用BurpSuite进行暴力破解从而将密码重置。

为了本地测试方便,所以将初始密码设置为 111111,其md5的值为:96e79218965eb72c92a549dd5a330112。重置后密码将变为123456,MD5加密后即 e10adc3949ba59abbe56e057f20f883e

image.png

先用Python生成一个四位数字的字典:

image.png

利用BurpSuite 进行暴力破解:

image.png
image.png
image.png

结束后,查看数据库,发现密码确实被重置了:

image.png

使用 Admin/123456 可以成功登陆后台管理页面:

image.png

另外,这里涉及到表单提交,所以过程中我也想到过能否使用sql注入,然而每一次表单的提交,php代码中都在sql语句构造前,对用户的表单输入通过 test_input() 函数进行了安全检查和过滤,所以不存在SQL注入的问题。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,087评论 18 139
  • 细雨愁烟,寻根祭祖,别离怀绪。 寄与哀思,飘幡冢田处。 冥钱化尽,烟袅袅、烧符燃炷。 君悟,一片丹心,问先人知否。...
    刘小地阅读 614评论 9 35
  • 文章中,句子内部间存在天然的意义联系,或者叫逻辑关系。弄清句子内部之间的关系,对于阅读和写作来说,意义重大。一方面...
    稻舆菊阅读 2,438评论 0 1
  • 前几天写了一个 flex.el , 今天看了一下 bison-mode.el 的代码, 也太陈旧了, 顺手再写一个...
    ManateeLazyCat阅读 956评论 0 3
  • 正式上班第一天,今天交易不好,总结到了是自己看的不好,分析不出有用的东西在其中一个品种! 今天股票反而走得不错! ...
    DeathKnightR阅读 80评论 0 0