记一次前端绕过getshell

admin 2022年10月5日23:16:51评论85 views字数 884阅读2分56秒阅读模式

一个风和日丽的下午,突然来了个测试项目。

记一次前端绕过getshell

打开领导给我发的地址,发现是一个再熟悉不过的登录框。

记一次前端绕过getshell

先看了一下网站框架和操作系统之类的,发现没啥可以直接利用的点。

记一次前端绕过getshell

于是先对登录框动手,直接一手admin/123456然后登录失败。

记一次前端绕过getshell


记一次前端绕过getshell

不过也还行,起码用户名有了。那就直接扔到Intruder里爆密码,将返回包中的结果进行筛选。很遗憾,没发现有除了2以外的数字。

记一次前端绕过getshell

没弱口令我就挖个SQL注入去找管理员密码呗,加上单引号,没报错。

记一次前端绕过getshell

延时注入也无果。

记一次前端绕过getshell

无奈对网站目录进行扫描,看有没有旁挂的系统、目录遍历和上传接口之类的,但是天都黑了也没发现可利用的点。

记一次前端绕过getshell

僵持了一阵后,把目光放在了前端的JS上,那就硬刚JS吧。发现登录按钮绑定了点击事件,调用了doLogin函数。

记一次前端绕过getshell

Ctrl+Shift+F进行全局搜索函数名。

记一次前端绕过getshell

找到函数定义的地方。

记一次前端绕过getshell

查看代码发现通过switch判断很明显可以看出当Info为1时,是没有错误提示的,并且加载了一些内容。

记一次前端绕过getshell

因为Info是通过返回包赋值的,于是使用BP拦截登录请求的返回包,并修改该数据包进行一次前端绕过。

记一次前端绕过getshell

将返回包中的2直接改成1,假装自己登陆成功了。

记一次前端绕过getshell

发包后发现还真成功了!!!

记一次前端绕过getshell

正当我开心的以为再点一下就到管理后台了,一个302,登录框他又回来了。。。

记一次前端绕过getshell

欢迎登录~

记一次前端绕过getshell

不信邪的我又使用不同的姿势绕了好几次,始终看不到后台页面(哪怕是框架也好啊)。

又僵持了一阵后,发现修改完返回包伪造登录成功后,是多了几个数据包的,于是对那几个新数据包进行测试。

一个单引号报语法错误!!!

记一次前端绕过getshell

延时注入

记一次前端绕过getshell

直接上sqlmap一把梭。

记一次前端绕过getshell

正当我想去--search -C "username"找用户表、查管理员密码进后台的时候。突然惊醒Mssql+DBA=起飞不是吗,直接拿数据库服务器他不香么。

记一次前端绕过getshell

查询是否为DBA,返回True无疑是最开心的。“select host_name();”,“select @@servername;”结果一样,不是站库分离,那就更简单了。

记一次前端绕过getshell

借助sqlmap开启xp_cmdshell成功执行命令,上线CSWeb测试结束。

记一次前端绕过getshell

原文始发于微信公众号(雁行安全团队):记一次前端绕过getshell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月5日23:16:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次前端绕过getshellhttp://cn-sec.com/archives/814749.html

发表评论

匿名网友 填写信息