beescms网站渗透测试和修复意见「建议收藏」

beescms网站渗透测试和修复意见「建议收藏」beescms网站渗透测试目录1.环境搭建2.渗透前信息收集3.开始渗透Beescms实验环境搭建1、官方下载Beescmsv4.0,下载地址:http://beescms.com/cxxz.html2、解压压缩文件,然后把文件放到phpstudy的网站根目录3、浏览器访问http://127.0.0.1/beescms/install,开始安装4、一直下一步,出现如下界面,输入数据库账户密码5、成功安装6、修改mysql.ini文件,在mysqld下添加条目:secu

大家好,又见面了,我是你们的朋友全栈君。

beescms网站渗透测试修复意见

目录

1.环境搭建
2.渗透前信息收集
3.开始渗透
4.总结
5.修复建议

Beescms实验环境搭建

1、官方下载Beescms v4.0,下载地址: http://beescms.com/cxxz.html
2、解压压缩文件,然后把文件放到phpstudy的网站根目录
3、浏览器访问http://127.0.0.1/beescms/install,开始安装
在这里插入图片描述
4、一直下一步,出现如下界面,输入数据库账户密码
在这里插入图片描述
5、成功安装
在这里插入图片描述
6、修改mysql.ini 文件,在mysqld 下添加条目: secure_file_priv =,保存然后重启phpstudy,不然用mysql写入文件会报错。
在这里插入图片描述
7、安装完成
在这里插入图片描述

渗透前信息收集

1、用kali的dirb对网站目录进行扫描
在这里插入图片描述
同时也用sqlmap对网站进行注入扫描
sqlmap -u "http://靶机IP/newsletter&id=1" -p id
在这里插入图片描述
2、扫描完成后,sqlmap没有发现注入点,但是目录扫描发现了管理登录点,尝试对管理登录点进行漏洞测试在这里插入图片描述
在这里插入图片描述
3、在这里对用户名登录进行sql注入尝试
在这里插入图片描述
发现有sql语句报错
在这里插入图片描述
这里是一个渗透点记下!

4.查看能否对管理员登录进行爆破
在这里插入图片描述
在这里,可以看到,验证码是有submit来刷新页面,也就是说可以达到控制submit来禁止验证码刷新实现爆破,这也是渗透点,记下!

漏洞利用

一、密码爆破漏洞

(1)尝试输入用户名密码进行登录
在这里插入图片描述

(2)通过burp分析登录需要的参数
在这里插入图片描述

可以看到参数里面有user,password,code,submit
通过代码可以发现,submit在用户提交后刷新页面和验证码,所以我们需要在submit=true哪里修改为submit=false就可以让他停止刷新,从而输入一遍验证码即可。
(3)通过burp爆破
在这里插入图片描述

修改submit=true为false将密码设定为变量对admin用户进行爆破。
(4)成功结果
在这里插入图片描述
在这里插入图片描述

二、文件上传漏洞

1.登录后台获取系统权限
(1)后台管理中有文件上传的区域
在这里插入图片描述

(2)上传一个一句话木马后,发现文件将会被重新命名
在这里插入图片描述

(3)观察源码后发现,文件被重新命名后源文件还是在同一目目录下,只是将文件单独截图多加了_thumb.png的后缀改成我们所上传的文件后缀,去掉后缀就可以看到我们上传的文件包含一句话木马
在这里插入图片描述

(4)用蚁剑连接测试
在这里插入图片描述

测试成功,获得系统权限
sql注入漏洞
(1)登录页面尝试
在这里插入图片描述
在这里插入图片描述

通过分析可以看到有sql注入漏洞
在这里插入图片描述

unionselect等关键字被过滤
(3)通过上面的分析源码,发现bypass的方法,猜解SQL查询语句中的字段数,根据如下图所示,判断出SQL查询语句中的字段数为5
在这里插入图片描述

(4)对库名爆破
在这里插入图片描述

(5)对表名爆破
在这里插入图片描述

(6)列名爆破
在这里插入图片描述

在这里插入图片描述

(7)暴字段
在这里插入图片描述

(8)暴密码
在这里插入图片描述

(9)密码解密
密码是md5编写的,用md5解密即可
在这里插入图片描述
密码是admin

总结

经过审计分析,beescms V4.0版本存在后台管理员密码爆破漏洞、文件上传漏洞、后台SQL注入漏洞。管理员后台密码爆破漏洞会造成管理员密码泄露影响;文件上传漏洞漏洞会造成系统被黑客入侵影响;后台SQL注入漏洞会造成管理员密码泄露影响。

修复建议

可以通过修改验证码方式对后台管理员密码漏洞进行修护,修复的措施如下:

  1. 验证码只能用一次,用完立即过期!不能再次使用
  2. 验证码不要太弱。扭曲、变形、干扰线条、干扰背景色、变换字体、增加token,且一次性有效。
  3. 模糊提醒
  4. 限制请求频率,错误一定次数,锁定账号一段时间
  5. 修改验证方式设置,改为滑块验证或者图像化验证防止抓包

可以通过修改图片方式对文件上传漏洞进行修护,修复的措施如下:

  1. 图片二次处理后,将源文件删除或转移其他目录,防止被发现找到,避免一句话木马插入
    可以通过修改图片方式对sql注入漏洞进行修护,修复的代码或措施如下:
  2. 普通用户与系统管理员用户的权限要有严格的区分,如果一个普通用户在使用查询语句中嵌入另一个Drop Table语句,那么是否允许执行呢?由于Drop语句关系到数据库的基本对象,故要操作这个语句用户必须有相关的权限
  3. 强迫使用参数化语句,如果在编写SQL语句的时候,用户输入的变量不是直接嵌入到SQL语句,而是通过参数来传递这个变量的话,那么就可以有效的防治SQL注入式攻击
  4. 加强对用户输入的验证,加强对用户输入内容的检查与验证,强迫使用参数化语句来传递用户输入的内容。在SQLServer数据库中,有比较多的用户输入内容验证工具,可以帮助管理员来对付SQL注入式攻击。测试字符串变量的内容,只接受所需的值。拒绝包含二进制数据、转义序列和注释字符的输入内容
  5. 多多使用SQL Server数据库自带的安全参数,在SQLServer数据库专门设计了相对安全的SQL参数。在数据库设计过程中,要尽量采用这些参数来杜绝恶意的SQL注入式攻击
  6. 定期使用专业的漏洞扫描工具来寻找可能被攻击的点,在被人攻击自己网站前,优先找出自己网站的漏洞
  7. 设置两个帐号,一个是普通管理员帐号,一个是防注入的帐号。将防注入的账号设置的很象管理员,如 admin,以制造假象吸引软件的检测,而密码是大于千字以上的中文字符,迫使软件分析账号的时候进入全负荷状态甚至资源耗尽而死机
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151799.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 异常之 RuntimeException和Exception的区别

    Java 异常之 RuntimeException和Exception的区别在java的异常类体系中,Error和RuntimeException是非检查型异常,其他的都是检查型异常。所有方法都可以在不声明throws的情况下抛出RuntimeException及其子类不可以在不声明的情况下抛出非RuntimeException简单的说,非RuntimeException必要自己写catch块处理掉。RuntimeExce

    2022年7月24日
    10
  • Hadoop博文目录

    Hadoop博文目录

    2021年8月26日
    54
  • vue-router路由懒加载以及三种实现方式「建议收藏」

    vue-router路由懒加载以及三种实现方式「建议收藏」什么是路由懒加载?也叫延迟加载,即在需要的时候进行加载,随用随载。官方解释: 1:当打包构建应用时,JavaScript包会变得非常大,影响页面加载。 2:如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。官方在说什么呢?为什么需要懒加载? 1:首先,我们知道路由中通常会定义很多不同的页面。 2:这个页面这项目build打包后,一般情况下,会放在一个单独的js文件中 3:但是,如果很多的页面都放在同一个js文件.

    2022年10月6日
    5
  • jdbc的增删改查_使用jdbc完成数据的增删改查

    jdbc的增删改查_使用jdbc完成数据的增删改查JBDC数据的持久化:把数据保存到磁盘上。JDBC是java访问数据库的基石,JDO,Hibernate,Mybatis等都是基于JDBCJDBC是一个独立于特定数据库的管理系统,通用的SQL数据库存取和操作的公共接口配置文件:jdbc.propertiesuser=rootpassword=abc123url=jdbc:mysql://localhost:3306/testdriverClass=com.mysql.jdbc.Driver获取Connectionpublic s

    2022年8月8日
    3
  • java中method方法_java修改字体大小

    java中method方法_java修改字体大小LocalDateaThousandDaysLater=hello.plusDays(1000);这个调用后hello会有什么变化?他会改为1000天之后的日期吗?事实上,并没有。plusDays()方法会生成一个新的LocalDate对象,然后将这个新对象赋值给aThousandDaysLater。原来的对象在堆中不会有任何改变。我们说的plusDays方法没有更改调用plusDays方法的

    2025年9月12日
    6
  • Linux shell awk数组使用

    Linux shell awk数组使用awk中使用数组一.数组格式数组是一个包含一系列元素的表.格式如下:abc[1]=”xiaohong”abc[2]=”xiaolan”解释:abc:为数组名称[1]、[2]:为数组元素下标,可以理解为数组的第1个元素、数组的第2个元素”xiaohong”、”xiaolan”:元素内容数组arrray[index-express…

    2022年7月19日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号