- 讲师 : 社长 林子婷(飞飞)
- 时间 : 19:00-21:00(授课时间共2小时)
- 授课内容:网站相关知识、SQL基础、SQL Injection
- 讲师相关连结 :
- 实作网址https://lab.feifei.tw/
- 建置实作环境工具:Docker、Docker compose
网站常见漏洞
- 使用者身分
- 认证:弱密码(密码weak)、爆破密码(被字典档攻击),可设定登入几次,帐号锁定等方式。
- 权限:一般弱点扫描软件扫不出来,比方说我用user A登入,却可存取user B才可存取的资料。
- 参数:修改参数,比方说之前用curl修改,money参数改完送去後端,如果没验证就通过,就会发生问题。
- Session(服务器)/Cookie(浏览器):常见漏洞 Hijack Cookie。
- 输入输出
- Injection(最常出现):攻击者输入恶意指令,让资料库或系统透漏(输出)相关资讯(如使用者密码、信用卡个资等),或进一步瘫痪系统。
- 逻辑
- 程序码逻辑:利用更改网址,进入其他机密资料夹,如:page = ../data/users.db,看起来是一个很正常的逻辑,如果网站刚好有 data/users.db这个档案,这样攻击者就可以读取资料库里的内容,窃取机敏资料。
上图取自台科大资安社课教材
爬虫爬什麽
1.爬网页的robots.txt=>通常为"网址/robots.txt",以google为例
- robots.txt主要是当开发网站时,有些资讯不想被爬虫爬取,就可以写在robots.txt里面注明,比如下面的/search资料夹不能被爬(Disallow)、/search/about资料夹可以被爬(Allow)
- 但相对来说可以穰攻击者找到其他路径可以去登入(密码爆破)
- User-agent:如果服务器只看User-agent决定给不给过的话,可尝试修改User-agent伪冒登入使用(比如下面用AdsBot-Google登入存取/maps/api/js资料夹)
常见的Injection
- Command Injection-->很危险,可执行系统指令,造成系统瘫痪
- CRLF Injection:运用插入空白字符(CR+LF),进一步执行自己的恶意程序码。
- SQL Injection:通常可窃取资料库里面,使用者个资。
- XSS Injection:利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使使用者载入并执行攻击者恶意制造的网页程序。
- XML Injection:又称XML External Entity, XXE,透过XML语法进行请求或上传,而造成处理器漏洞攻击,甚至产生资料外泄、DoS等严重的风险。
- server side template injection:恶意攻击者透过恶意请求,其中包含恶意的「template语法」,让这个template语法在服务器被执行。
归结上述疏忽都是服务器未对使用者输入输出进行过滤
CRLF injection:
1.在windows系统中,CRLF为"Enter"键的意思,而在Linux系统里仅用LF表示。
2.CR为Carriage Return表示Return;LF为Line Feed表示换行。
3.CR在ASCII中可用字符(\r)、10进位(0x13)、16进位表示(%0d), LF可用字符(\n)、10进位(0x10)、16进位表示(%0a)。
4.HTTP 中请求跟回应,有一个 CRLF ,用来告诉服务器说我们已经换行了。
上图取自台科大资安社课教材
5.CRLF injection:在可以插入字串的地方插入 CR(0x13)+ LF(0x10),用来欺骗服务器,告诉这里我们这边提早换行,然後在後面插入恶意的 payload 。
上图取自台科大资安社课教材
6.CRLF injection 危害
- 任意转址到恶意网站
- 可能造成 session 固定攻击
- 可能造成 XSS
- 可能构造任何 HTTP Header 造成网页内容被改变
7.如何防护:过滤\r \n字元