解决DVWA配置报错

本文记录了在Ubuntu环境下部署DVWA遇到的404错误和MySQL 1045(28000)错误的解决方案,并详细阐述了针对SQL注入、NoSQL注入、OS注入、LDAP注入等Web安全问题的防御策略,包括使用PreparedStatement、存储过程、过滤特殊字符等方法。同时,文章还探讨了身份认证失效、敏感信息泄露、XML外部实体(XXE)和失效的访问控制等安全问题的防范措施。
摘要由CSDN通过智能技术生成

之前在ubantu下部署DVWA学习Web漏洞的时候碰到了访问DVWA页面404错误、mysql 1045(28000)错误两个问题,今天有时间写一下解决办法

1.PHP的配置问题(apache2.conf)

   默认路径确实是/var/www 但是,在此目录下的php文件时无法打开的,提示404错误,无法找到路径下文件

                 需要把文件放在/var/www/html下才能找到,但是路径是不需要加/html的

2.mysql 1045(28000)错误解决,需要重置数据库root用户的密码

   1)sudo /etc/init.d/mysql stop      暂停数据库服务

   2)sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &      跳过密码验证(可能会报错)

             2.1) 如果出现2018-09-08T11:50:44.870970Z mysqld_safe Logging to '/var/log/mysql/error.log'.
                           2018-09-08T11:50:44.872874Z mysqld_safe Logging to '/var/log/mysql/error.log'.
                           2018-09-08T11:50:44.874547Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
                       
                         这种错误则执行2.2)
             
             2.2)mkdir -p /var/run/mysqld                  自己创建这个目录
                  chown mysql:mysql /var/run/mysqld         更改文件的所属用户


   3) 2.2执行完后,终端不要关闭,打开一个新的终端 , mysql -u root  登录进去

       执行  update user set authentication_string=PASSWORD("这里输入你要改的密码") where User='root'; #更改密码
       执行  update user set plugin="mysql_native_password"; #如果没这一行可能也会报一个错误,因此需要运行这一行
       执行  flush privileges; #更新所有操作权限
       执行  quit              #退出


   4) 重启验证
       sudo /etc/init.d/mysql stop
       sudo /etc/init.d/mysql start 
       mysql -u root -p

          输入正确的密码后进入数据库,原本的那个终端可能会卡死,(我直接关闭了)

$至此DVWA能正确创建数据库了,注意DVWA的config.inc.php文件的配置,账号密码需要和mysql的一致,然后自动跳转到DVWA的login页面
A1:2017 – 注入
将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NoSQL注入、OS 注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预 期命令或访问数据。

防御思路:
--------------官方文档防御思路总述---------------
防止注入漏洞需要将数据与命令语句、查询语句分隔开来。
》 最佳选择是使用安全的API,完全避免使用解释器,或提供参数化界面的接口,或迁移到ORM或实体框架。
》 注意:当参数化时,存储过程仍然可以引入SQL注入,如果PL/SQL或T-SQL将查询和数据连接在一起,或者执行带有立即执行或exec()的恶意数据。
》 使用正确的或“白名单”的具有恰当规范化的输入验证方法同样会有助于防止注入攻击,但这不是一个完整的防御,因为许多应用程序在输入中需要特殊字符,例如文本区域或移动应用程序的API。
》 对于任何剩余的动态查询,可以使用该解释器的特定转义语法转义特殊字符。OWASP的Java Encoder和类似的库提供了这样的转义例程。
》 注意:SQL结构,比如:表名、列名等无法转义,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值