网络安全的冰山一角,小白入门Web安全基础知识

  • 内容
  • 相关

前言:

安全的重要性,不需要多说了,简单的聊聊网络安全。

安全测试主要使用的工具有 burpsuite, sqlmap

安全主要涉及到一下几点:

  1. 爆力破解

  2. 命令执行

  3. 文件包含

  4. 文件上传

  5. SQL注入:显注,盲注

  6. XSS


1 为什么要弄安全

敏感信息泄露会对我们造成严重的损失。我们有义务去保护客户信息的私密性。

不妨大胆的假设下:

我们的信息系统被成功攻击,并且敏感数据被窃取以后,<此处省略几万字(被利用的过程)。。。>

结论:

会有人住你的房子,花你的钱,睡你的老婆,打你的娃!




2 两条腿走路

有人一定会说有waf不就行了嘛?

讲个段子:

一位大师给小明算命说他能活98,小明高兴的骑着电动车,一路狂飚,有命!任性!

76年后某小电视台新闻:一位老人22岁时车祸高位截瘫,卧床76年,享年98。


3 认识安全的目的

  • 认清危害,以及修复的方式

  • 修正我们的编码习惯(对工程师)



4 攻击历史的转变

  • 早些时代

    漏洞来源:所针对的攻击为针对操作系统层面,例如大名鼎鼎的蠕虫

    应对措施:打补丁!!! 打补丁!!! 打补丁!!!

  • 现如今

    漏洞来源:针对web层面的攻击更多也更容易。同时移动端同样是高威胁区。

    应对措施:依照安全开发的标准进行开发,这就对于中小公司提出了高难度,WAF防火墙,安全狗


5 神器之burpsuite(使用细节就不介绍了)

1 启动burpsuite

2 配置代理截断

3 Scanner的使用

4 Intruder的使用

5 repeater的使用


6 神器之RIPS(具体使用就不介绍了)

RIPS是一个源代码分析工具,它使用了静态分析技术,能够自动化地挖掘PHP源代码潜在的安全漏洞。渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码。由于静态源代码分析的限制,漏洞是否真正存在,仍然需要代码审阅者确认。RIPS能够检测XSS, SQL注入, 文件泄露, LFI/RFI, RCE漏洞等。搭建LAMP环境后,上传RIPS,扫描代码文件即可。


7 黑客攻击演示以及防御策略

1 暴力破解

方法:发送到intruder后,定义参数,定义payloads后进行暴力破解,根据返回的数据包进行判断。

防御:

1 使用https,加密post包的密码。

2 使用验证码。

3 错误尝试N次后,锁定账户M分钟。

4 高强度密码。

引申: 报错信息不要过于详细

2 命令执行

输入IP地址后,则ping此IP地址。

输入框本应设计成仅可以输入IP地址。如果出现漏洞则可执行下面语句:

127.0.0.1; cat /etc/passwd



防御:

在此案例中,如果没有漏洞的环境,应该是服务器端增加校验,通过正则看看是不是IP地址,

ping “127.0.0.1;cat /etc/passwd” 这个整体。但是由于代码缺陷, 符号;导致了语句产生歧义,故产生了漏洞。实际上,几乎所有代码层面的漏洞,均是此原因所引起。

《web应用安全指南》PAGE 206

  • 避免使用内部调用shell的函数

  • 使用内部调用shell的函数时,避免由外界传入参数

  • 将参数传递给OS命令之前使用安全的函数进行转义。


二、一些常用的攻击方式基础方法:

1. 文件包含

正常访问的文件为include.php


通过修改参数,可以访问到敏感信息。

http://*.*.*.*/vulnerabilities/fi/?page=/etc/passwd



防御

  • 避免由外界制定文件名

  • 文件名中不可以包含目录名

  • 限定文件名中仅包含字母与数字。

2. 文件上传

当文件上传功能出现漏洞后,会导致高风险

下图为上传php木马。其实木马只有一句话 :

<?php eval($_POST['ee']); ?>

开启木马连接工具—中国菜刀

http://*.*.*.*/hackable/uploads/1.php



防御:

  • 校验扩展名是否在范围内.

  • 图像文件的情况下确认其文件头.

  • 针对上传文件大小进行约定.

  • 服务器端校验

  • 上传的文件重命名,并且把文件地址隐藏。

3 SQL注入

SQL注入分为显注与盲注

UserID项如果输入1则返回值正常,如果加个’,则报错!


但盲注中则不会返回数值。


对于攻击者来讲:

通过自动化的注入工具sqlmap,会自动进行显注与盲注。

那到底显注与盲注到底是个啥东东呢?

一个成功的sql注入入侵流程到底是个啥过程呢?

请穿越回《智取威虎山》

但请注意:

网站所有者是座山雕。

攻击者是杨子荣。

正常的流程:

天王盖地虎,

宝塔填河妖

脸红什么?

精神焕发。

怎么又黄啦?

防冷涂的蜡!

攻击者的流程:

天王盖地虎!

宝塔<攻击者语句>填河妖!

脸红<攻击语句的应答>什么?

精神焕发。

怎么又黄啦?

防冷涂的蜡!

下面分析攻击者语句有哪些搞法?

天王盖地虎!

宝塔<你兜里有多少钱?>填河妖!

脸红<300>什么?

精神焕发。

怎么又黄啦?

防冷涂的蜡!

显注可以理解为直接返回需要的信息。

盲注需要构造类似问答形式的语句。

共同点在于攻击语句都会得到应答。

天王盖地虎!

宝塔<你兜里的钱是300嘛?>填河妖!

脸红<是>什么?

精神焕发。

怎么又黄啦?

防冷涂的蜡!

防御措施的解析

天王盖地虎!

宝塔<你兜里有多少钱?>填河妖!

脸红<300>什么?

如果遭遇提交这种请求,两种防御的措施:

1 接受到<你兜里有多少钱?>请求后,把杨子荣关监狱 -------waf的职责。

2 座山雕对这种问题不回应,自动过滤掉问题。 ------代码的职责。

回到开始,为什么要两条腿走路(见上篇):

因为座山雕的警卫可能是个文盲,但座山雕不是,

杨子荣可以构造如下请求:

宝塔<how much money do u have?>填河妖!

防御:

  • A 使用静态占位符调用SQL语句。

  • B 应用程序中拼接SQL语句时。确保字面量被正确处理,sql语句不被更改。

  • 如果可用,使用自动实施数据和代码之间的分离的结构化机制。这些机制也许能够自动提供相关引用、编码和验证,而不是依赖于开发者在生成输出的每一处提供此能力。

4 XSS

留言板功能中,message参数存在XSS漏洞

插入如下语句后,则每次浏览都会导致COOKIE被窃取。

<script>alert (document.cookie) </script>

真实的攻击中,则会直接将cookie发送到攻击者的邮箱中。


假设过去出现过存储型XSS,

后续的修复中使用过滤特殊符号的修复。

将dvwa的级别调整到HIGH,则会发现旧有的攻击仍旧存在。

这是因为使用了不严谨的方式(仅过滤的输入,对输出没有限定)

安全能够找到套路,但是前提一定要找到对的套路.......

XSS反射性

同样的语句:<script>alert (document.cookie) </script>



XSS的危害

相比与sql注入,xss很容易被忽略,尤其是反射型XSS。

XSS可以造成 cookie的窃取,通过盲打甚至会得到管理员的COOKIE

进而引发一系列的问题。

XSS防御方法:

1 用双引号括起属性值

2 转义HTML中的特殊字符。

CSRF产生的原因

CSRF的核心在于攻击者可以预测到即将发生的动作。

防御方法:

执行关键处理前,确认是正规用户发起的请求(token)

漏洞类型总结

小明从家出发---> 银行--->提交身份证银行卡信息--->取钱

1 小明遇到一个山寨银行,被钓鱼 ------- 中间人攻击

2 小明按照保安要求填表,同时被要求”滚出去“ ------- 命令执行

3 提交资料,小明不断的测试自己的银行卡密码 ------- 暴力破解

4 小明偷取到了银行的表单,然后搞到了别人的银行卡 ------- SQL注入

5 小明取钱的时候脑子进水了,把钱转帐到了其他人卡上 ------- CSRF

6 小明提交认证信息后中途去WC,被其他人冒充 ------- XSS

7 小明觉得风险太大,把钱都存到家保险柜,被贼用锤子把门砸了 ---- DDOS


本文标签:

版权声明:若无特殊注明,本文皆为《舜哥哥吖》原创,转载请保留文章出处。

本文链接:网络安全的冰山一角,小白入门Web安全基础知识 - http://www.shungg.cn/post/92

发表评论

电子邮件地址不会被公开。 必填项已用*标注