这篇php用到的版本是php5.5
大致目录和代码是这样的,
连接的数据库也是很简易,
形成的界面就是最简单的登陆注册
下面是sql注入漏洞检测
我注册了一个,用户名是lixin
使用lixin\' or 1=1# 万能密码直接过。反正就是一点没过滤,接下来补上这些代码漏洞点。
在下载的源码里有这么一个函数
addslashes — 使用反斜线引用字符串,函数addslashes()作用是返回在预定义字符之前添加反斜杠的字符串。预定义字符是单引号(\')双引号(")反斜杠(\)NULL。这样就造成了得结果是我们无法在注入的过程当中使用( ‘ )。
我一开始还没注意,后来才发现了这个其实很强大,可以防御很多sql注入,所以在上面是把他注释掉了。但是不注释,就是一个很好的补漏洞。
下面是文件上传漏洞检测
文件上传在注册里面,正常的上传.png .txt 此类的都会正常在WWW\login\uploads这个目录里出现,因为有
这个语句
再加一个语句,让他输出文件路径。
我这里文件上传一个attack.php
进行一些修复如下:
文件头content-type字段校验、文件后缀检测,都有这个想法。
时间不够还有待修改。