web安全

安全基础教育第一季:堡垒是从内部攻破的

纵饮孤独 提交于 2019-12-04 23:02:57
郑昀 创建于2015/4/10 最后更新于2015/4/28 本文档适用人员:广义的技术人员 提纲: 堡垒是从内部攻破的 员工无知者无畏 运维配置暴露细节 后台不设防 常犯常新,屡战屡败 处处留心皆学问 0x00. 背景: 技术团队 第一忙于业务逻辑,第二大量新人涌入,会把过去大家在安全上栽的跟头重新趟一遍,因此该做的培训咱还得做,该说的经验教训还得说,一次不行就两次,两次不行三次,重复再重复。 0x01. 堡垒是从内部攻破的: 一次成功的入侵渗透,并不需要是什么高危漏洞,几个普普通通的中等漏洞,搭配一次社会工程学行动,就可以搞定。 一个公司成千上万人,往少里说也有 80% 的人安全意识淡薄,有耐心的攻击者会盯好几年,穷尽各种招数,没有攻不进去的堡垒。 员工无知者无畏 大多数员工都图省事儿,公司邮箱以及其他内部 IT 系统都用简单密码甚至空密码,好些个知名 IT 系统也不对此做任何限制(甚至是专业企业级软件制造商出品的IT系统)。 弱密码遇到不设防的 IT 系统,对攻击者来说真是福音。 案例一,乌云漏洞报告:重置某东任意内部邮箱用户密码 漏洞提交时间: 2013-10-26 原理: 公司做得越来越大的时候,总会出现那么几个安全意识薄弱的人员(俗称猪一样的队友),他们往往会做出一些让人无法理解的事情,比如:他会毫不犹豫地双击运行邮件内的 EXE 附件,或者使用跟用户名一样的密码

Web安全测试学习笔记 - SQL注入-2

亡梦爱人 提交于 2019-12-04 13:32:35
接上一篇SQL注入的学习笔记,上一篇我通过报错信息得知后台数据库是MySQL( 这个信息非常重要~ ),然后通过SQL注入拿到了用户表的所有行,其实我们还可以通过MySQL的特性来拿更多的信息。 1. 获取当前数据库名称 输入:2' union select 1,database() ' 输出:数据库名称为dvwa database()是Mysql自带函数,用来获取当前数据库名称。 2.获取当前数据库所有表名 输入:1' union select 1,table_name from information_schema.tables where table_schema='dvwa 输出:dvwa数据库中一共有两张表,分别是gestbook和users information_schema是MySQL自带数据库,用来存储MySQL数据库元数据,通俗来说就是MySQL中的所有数据库名,每个数据库的表名,每个表的列名等等。 3. 获取用户表的所有字段名 输入:1' union select 1,column_name from information_schema.columns where table_schema='dvwa' and table_name='users 输出:users表中比较重要的列名:user,password 4. 获取用户表中的数据 输入: ' UNION

Web 安全渗透测试常用工具

▼魔方 西西 提交于 2019-12-04 08:37:31
漏洞扫描工具:openvas,nessus 压力测试工具:LOIC低轨道离子炮,Siege DNS伪造:DNSCheF, 端口扫描工具:nmap, 抓包工具:wireshark SQL 注入工具:sql-injection,SQLMap,Pangolin,Bsql hacker,Havij,The Mole web目录探测:DirBuster,wwwscan,御剑后台扫描,skipfish, 自动化web应用程序安全从测试工具:AWVS即wvs,AppScan,webshag,websecurify,vega css跨站脚本:Burp Suite,xss shell,XSS Platform, CSRF跨站点请求伪造; CSRFTEST 暴力破解:Hydra,DirBuster ARP欺骗攻击:Ettercap,NetFuke 拒绝服务攻击:hulk,Scapy 漏洞利用工具:号称可以黑出屎的工具Metasploit,w3af 密码破解工具:Johnny,hashcat,oclHashcat,chntpw 中间人攻击:Driftnet web应用代理:ProxyStrike 来源: oschina 链接: https://my.oschina.net/u/2460176/blog/596164

如何保护 .NET 应用的安全?

你离开我真会死。 提交于 2019-12-03 22:09:33
自从 Web 应用能给访问者提供丰富的内容之后,黑客们就把目光转向任何他们能够破坏,损毁,欺骗的漏洞。通过网络浏览器提供的应用越来越多,网络罪犯们可以利用的漏洞数量也呈指数增长起来。 大多数企业都依赖于网站向客户提供内容,与客户进行互动,销售产品。因此,企业会部署一些常用的技术来处理网站的不同请求。Joomla!或 Drupal 这样的内容管理系统或许能够建立包含产品、服务以及相关内容的健壮网站。此外,企业往往会使用 Wordpress 博客或基于 phpBB 的论坛这类依靠用户产出内容的社区,给客户提供评论和讨论的反馈平台。无论规模大小,对于直接在网上销售的电商企业,ZenCart 和 Magento 都能满足他们的需求。但再加上数千个网站依赖的专有应用程序,确保网络应用程序的安全应该是任何规模的网站管理者的首要问题。 ###与网络应用相关的风险 网络应用程序允许访问者访问网站最重要的资源——网络服务器和数据库服务器。和任何一款软件一样,网络应用程序的开发人员在产品和功能上花费了大量时间,却很少把时间用在安全上。当然,这并不是说开发人员不关心安全问题,实际情况绝非如此。真正的原因是,一方面,开发者对安全缺乏理解。另一方面,项目经理考虑安全问题的时间太少。 不管是什么原因,应用程序往往充满了漏洞。利用这些漏洞,攻击者可以访问 Web 服务器或数据库服务器。到那时候

安全基础教育第二季第1集:屡战屡败的找回密码

时光怂恿深爱的人放手 提交于 2019-12-03 21:05:48
郑昀 创建于2015/5/19 最后更新于2015/8/7 关键词: Web安全、系统安全、Web开发、找回密码、重置密码 本文档适用人员:广义的技术人员 提纲: 堡垒是从内部攻破的 员工无知者无畏 运维配置暴露细节 后台不设防 常犯常新,屡战屡败 找回密码 图形和短信验证码 平行权限 MD5等于明文 处处留心皆学问 表单被篡改 App被篡改 跨站请求伪造 0x00. 前言: 第一季培训 主要宣导两点,第一,白帽子或黑客都很有耐心,他手里可能捏着你多个漏洞,他一直在等机会,他也有很多工具在扫在寻找机会,第二,一次成功的入侵渗透,并不需要是多么高危的漏洞,几个普普通通的中等漏洞,加上一次社会工程学行动,就可以杀进来。 第二季主要讲一下几乎所有的 Web 工程师都容易犯的安全错误。有些事情你必须知道,并且身体力行,成为你根深蒂固的开发习惯和思路,否则会重现这个 地毯上刹车 的悲剧。 0x01. 找回密码: Web 站点的安全重灾区就是找回密码功能。很多工作了多年的 Web 开发工程师仍然意识不到这些基本安全原则: 客户端提交的 HTTP Request 是不可信的 ,表单数据可能被篡改,验证信息可能被仿冒; 客户端展现的一切,服务器端发给客户端的一切 ,一切信息,GET/POST参数,HTML/JS/Cookies,都可以被白帽子看到 ,毫无秘密可言; 靠 JavaScript

web安全测试(上)

不羁的心 提交于 2019-12-03 14:50:33
前情提要: 公司的安全测试一直是安全部经理全权负责,测试部只做功能和自动化。 但是2019是公司业绩腾飞的一年,业务量越来越大了,安全部经理实在做不过来。 于是他给整个测试部培训《安全测试》,一来把活分出去,二来增强我们的安全意识和安全测试技能。 但是只学了两节课,把知识点罗列如下,并且题目列为“上篇” 安全测试的内容持续更新中。。。 正文: 一、Web漏洞 暴力破解、文件上传、文件读取下载、SSRF、代码执行、命令执行 逻辑漏洞(数据遍历、越权、认证绕过、金额篡改、竞争条件) 应用层拒绝服务漏洞 人为漏洞:弱口令 漏洞等级如下: 严重 直接获取重要服务器(客户端)权限的漏洞。包括但不限于远程任意命令执行、上传 webshell、可利用远程缓冲区溢出、可利用的 ActiveX 堆栈溢出、可利用浏览器 use after free 漏洞、可利用远程内核代码执行漏洞以及其它因逻辑问题导致的可利用的远程代码执行漏洞; 直接导致严重的信息泄漏漏洞。包括但不限于重要系统中能获取大量信息的SQL注入漏洞; 能直接获取目标单位核心机密的漏洞; 高危 直接获取普通系统权限的漏洞。包括但不限于远程命令执行、代码执行、上传webshell、缓冲区溢出等; 严重的逻辑设计缺陷和流程缺陷。包括但不限于任意账号密码修改、重要业务配置修改、泄露; 可直接批量盗取用户身份权限的漏洞

Web安全攻防笔记-SQL注入

扶醉桌前 提交于 2019-12-03 04:42:33
information_schema(MySQL5.0版本之后,MySQL数据库默认存放一个information_schema数据库) information_schema的三个表: SCHEMATA:该表中的字段SCHEMA_NAME存储该用户创建的所有数据库的库名。 TABLES:该表中的字段TABLE_SCHEMA,TABLE_NAME分别记录该用户创建的所有数据库库名和表名。 COLUMNS:该表中的字段TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME分别记录该用户创建的所有数据库库名、表名、字段名。 查询语句 SELECT 要查询的字段名 FROM 库名.表名 SELECT 要查询的字段名 FROM 库名.表名 WHERE 已知条件的字段名=‘已知条件的值’ SELECT 要查询的字段名 FROM 库名.表名 WHERE 已知条件的字段名=‘已知条件的值’ AND 已知条件2的字段名=‘已知条件2的值’ SELECT * FROM users SELECT * FROM users limit 0,1 重要函数(用于注入时,查询敏感信息) database():当前网站使用数据库 version():当前数据库版本号 user():当前数据库用户 concat_ws():多条目显示 load_file():读取系统文件,读取文件路径需转换为16进制

web安全测试要点

匿名 (未验证) 提交于 2019-12-03 00:39:02
1. 不登录系统,直接输入登录后的页面的URL是否可以访问; 2. 不登录系统,直接输入下载文件的URL是否可以下载文件; 如输入:http://url/download?name=file是否可以下载文件file 3. 退出登录后,后退按钮能否访问之前的页面; 4. ID/密码验证方式中能否使用简单密码; 如密码标准为6位以上,字母和数字的组合,不包含ID,连接的字母或数字不能超过n位 5. ID/密码验证方式中,同一个帐号在不同的机器上不同时登录 6. ID/密码验证方式中,连续数次输入错误密码后该帐户是否被锁定 7. 重要信息(如密码,身份证,信用卡号等)在输入或者查询时是否明文显示; 在浏览器地址栏中输入命令javascript:alert(doucument.cookie)时是否有重要信息; 在html源码中能否看到重要信息; 8. 手动更改URL中的参数值能否访问没有权限访问的页面。 如普通用户对应的URL中的参数为l=e,高级用户对应的URL中的参数为l=s,以普通用户的身份登录系统后将URL中的参数e改为s来访问没有权限访问的页面 9. URL里不可修改的参数是否可以被修改; 10. 上传与服务器端语言(jsp,asp,php)一样扩展名的文件或exe等可执行文件后,确认在服务器端是否可直接运行 11. 注册用户时是否可以以‘--’or1=1―等做为用户名 12.

[Web安全] XXE漏洞攻防学习(上)

匿名 (未验证) 提交于 2019-12-03 00:39:02
0x00、XXE漏洞 XXE漏洞全称 X ML E x ternal E ntity Injection 即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时, 没有禁止外部实体的加载 ,导致可加载恶意外部文件和代码,造成 任意文件读取 、 命令执行 、 内网端口扫描 、 攻击内网网站 、 发起Dos攻击 等危害。 XXE漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。 0x01、XML基础知识 要了xxe漏洞,那么一定得先弄明白基础知识,了解xml文档的基础组成 XML 指可扩展标记语言(E x tensible M arkup L anguage) XML 被设计用来 传输 和 存储 数据。 HTML 被设计用来显示数据 XML把数据从HTML分离,XML是独立于软件和硬件的信息传输工具。 XML语言没有预定义的标签,允许作者定义自己的标签和自己的文档结构 XML的语法规则: XML 文档必须有一个根元素 XML 元素都必须有一个关闭标签 XML 标签对大小敏感 XML 元素必须被正确的嵌套 XML 属性值必须加引导 <? xml version="1.0" encoding="UTF-8" ?> <!--XML 声明--> < girl age="18" >  <!--自定的根元素girl

web安全基础

匿名 (未验证) 提交于 2019-12-03 00:08:02
以前学过的东西都没怎么整理,比较杂乱,现在通过写博客,整理一下自己学过的东西,温习一下,会有不同的收获。 基础协议 HTTP:即超文本传输协议,是一种无状态的协议,只能由客户端发起。(无状态是指WEB浏览器和WEB服务器之间不需要建立持久的连接),使用80端口进行连接,信息属于明文传输。 HTTPS:其实就是HTTP的“升级”版本,在HTTP下加入了SSL层。即通过安全传输机制进行传送数据,所以比HTTP协议要安全一些,使用443端口进行连接。(一般需要到CA申请证书) Telnet:是TCP/IP协议中的一员,是intelnet远程登陆服务的标准协议和主要方式。默认23端口 FTP:文件传输协议是TCP/IP协议中的一员,默认端口为20、21端口 B/S:浏览器/服务端架构 C/S:客户端/服务端架构 HTTP状态码: 1XX:信息提示,表示请求已经被成功接收,继续处理。范围:100~101 2XX:成功,服务器成功的处理了请求。范围:200~206 3XX:重定向,用于告诉浏览器客户端访问的资源已被移动。范围:300~305 4XX:客户端错误,比如:一个不存在的URL。范围:400~415 5XX:服务端错误,比如服务器运行出错。范围:500~505 HTTP请求头: Accept:告诉服务端自己接受的什么内容类型、*/*表示任何类型、type/*表示该类型下的任何子类型