网络安全的冰山一角,小白入门Web安全基础知识
前言:
安全的重要性,不需要多说了,简单的聊聊网络安全。
安全测试主要使用的工具有 burpsuite, sqlmap等
安全主要涉及到一下几点:
-
爆力破解
-
命令执行
-
文件包含
-
文件上传
-
SQL注入:显注,盲注
-
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