- 通过burpsuite修改http请求,绕过了前端JavaScript验证,并成功地向服务器提交了敏感数据,造成了xss跨站漏洞。
- JavaScript属于前端验证,在浏览器未提交数据时进行验证,而我们是通过了验证,并拦截HTTP请求后修改数据,JavaScript的验证根本起不了任何作用。由此可见,前端验证是不可靠的。
- 作为一名web开发人员,要牢记,前端JavaScript验证是为了防止用户输入错误,服务器端验证是为了防止恶意攻击。
- WinSock Expert:一个用来监视和修改网络发送和接收数据的程序,可以用来帮助测试人员调试网络应用程序,比较轻量型。
- Google Hack只是根据Google提供的语法来进行信息查询。
site ----- 指定域名
intext ----- 正文中存在关键字的网页
intitle ----- 标题中存在关键字的网页
info ----- 一些基本信息
inurl ----- URL存在关键字的网页
filetype ----- 搜索指定文件类型
示例:
intitle:管理登录 filetype:php //查询网页标题中含有“管理登录”,并且为php类型的网站
intext:Powered by Discuz //查找使用Discuz的主机,如果拥有Discuz漏洞,配合搜索,后果相当严重
搜索引擎只能查询蜘蛛爬行过的网页,而蜘蛛遵照网站根目录robots.txt的约定进行爬行。如果一些敏感目录不希望蜘蛛进行爬行,则可以写在网站根目录robots.txt中。虽然这样不会被蜘蛛爬行到,但是攻击者可以直接访问robot.txt,也存在风险。
存储过程(Stored Procedure)是在大型数据库系统中为了完成特定功能的这一组SQL“函数”;如执行系统命令,查看注册表,读取磁盘目录等。
攻击者最常使用的存储过程是“xp_cmdshell”,这个存储过程允许用户执行操作系统命令。宽字节注入:是由编码不统一所造成的,这种注入一般出现在PHP+MySQL中。在php配置文件php.ini中存在magic_quotes_gpc选项,被称为魔术引号,当被打开时,使用get、post、cookie接收的'、"、\和null字符都会被自动加上一个反斜线转义。
盲注:即页面无差异的注入,延时注入则属于盲注技术的一种,是一种基于时间差异的注入技术。在mysql中有一个函数,sleep(duration)上传漏洞:文件上传流程通常为客户端使用JavaScript验证,服务器端采用随机数来重命名文件,以防止文件重复
-
程序员在防止上传漏洞时可以分为以下两种:
- 客户端检测:客户端使用JavaScript检测,在文件未上传时,就对文件进行验证;
- 服务器端检测:服务端脚本一般会检测文件的MIME类型,检测文件扩展名是否合法,甚至有些程序员检测文件中是否嵌入恶意代码
-
服务器端检测:
- 黑名单过滤方式:一种不安全的方式,如asa、cer容易被忽略的扩展名、windows对以.或者 (空格)结尾会自动删除
- 白名单过滤方式
- MIME验证:MIME类型用来设定某种扩展名文件的打开方式,当具有该扩展名的文件被访问时,浏览器会自动使用指定的应用程序来打开,如GIF图片MIME类型为image/gif,CSS文件MIME类型为text/css
- 目录验证
- 截断上传攻击:如将文件上传名称更改为“1.jpg空格xxser.jpg”,然后单击HEX选项卡进入十六进制编辑模式,将文件名中空格的十六进制20改为00,即NULL,单击“GO”按钮,可以发现最终上传的文件为1.asp,后面的字符已经被截断
-
修复上传漏洞:
- 形成原因:目录过滤不严,攻击者可能建立畸形目录;文件未重命名,攻击者可能利用web容器解析漏洞。
- 修复方法:接收文件及其文件临时路径;获取扩展名与白名单做对比,如果没有命令,程序退出;对文件进行重命名。