zoukankan      html  css  js  c++  java
  • 20145120《网络对抗》Web安全基础实践

    20145120《网络对抗》Web安全基础实践

    回答问题

    (1)SQL注入攻击原理,如何防御
    SQL注入原理简单地说大概是,通过构造特殊的SQL命令提交表单,让服务器执行构造的恶意SQL命令,以对数据库进行恶意操作。
    服务器前端可以通过限制用户输入的长度,检测用户输入的内容(例如#,--,1=1等敏感的代码)等方法防止SQL注入,后台程序也可以再检测一遍前端传过来的内容,数据库中存放的一些数据要进行加密或者hash处理。

    (2)XSS攻击的原理,如何防御
    XSS即跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
    防御XSS可以通过检查用户的输入,看用户有没有在不必要的情况下输入< > /之类的字符或<script>等标签。

    (3)CSRF攻击原理,如何防御
    CSRF(Cross-site request forgery)即跨站请求伪造,也叫XSRF。通过伪装成受信用的网站,让用户执行恶意代码。
    因为CRSF需要得到cookie,得到授权,站点可以通过将持久授权改为瞬时授权,对cookie进行hash,会话结束时清理cookies等方法防御CSRF。

    实验总结与体会

    听老师说这次可以少截图我就少截图了,但总感觉少了截图就好像少了很多东西。这次的实验让我深刻地理解了SQL注入,XSS,CSRF等攻击的攻击原理和方法。也再一次提醒我,陌生链接不要点。学完了发现,像SQL,XSS这些攻击大都需要猜测你的源代码,知道了你的源代码就很好攻击了,感觉只要知道了你源代码我总能给你做点恶意攻击,同时,编写WEB前端后台的时候也要注意常见的或可能遇到的攻击,最后能不能攻击到,攻防你来我往地,就要看谁思路广、套路深了。

    实验过程:

    启动WebGoat平台

    输入java -jar webgoat-container-7.0.1-war-exec.jar启动WebGoat后,在浏览器输入127.0.0.1:8080/WebGoat可进入WebGoat平台

    SQL注入

    1 String SQL Injection

    还是先跟随老师的步伐,做个课上讲过的题目先
    题目要求注入sql得到所有返回结果,还把sql语句提示给了我们
    开始试了' or 1=1;#,呃,没对,只好Java Source看下java源代码,找到该sql语句是

    String query = "SELECT * FROM user_data WHERE last_name = '" + accountName + "'";
    

    好吧,一个经验主义的错误,这不是MySql,不能用#注释,反正都看了代码,那就直接' or '1'='1

    然后,在这里我遇上了一个超级大坑

    答案理论上是正确的,但是出不来结果,一开始我还以为是自己做错了,后来又看了其他同学的博客,甚至用Hints上的标准正确答案smith' OR '1' = '1也不行

    然后我才发现有个Restart Lesson,由于虚拟机是学长传下来的,之前这个任务已经做过,如果不重开一下,就算输入是对的也不会有出现应该出现的Congratulation

    一波三折还是做出来了,心累。。。

    2 Numeric SQL Injection

    感谢岐浩的博客让我想起了burpsuite怎么用(怎么用burpsuite当代理抓包等,666)

    题目要求返回所有天气信息,好做,Proxy中Options选项Add一个端口5120的,抓包,把包传给Repeater,把101改成101 or 1=1,点击GO发送,关掉截取,把改过的包传出,回到火狐能看到已经成功。

    3 LAB: SQL Injection Stage 1: String SQL Injection

    还是字符串SQL注入,这次没有提示了,按经验的话,先试试' or 1=1;--,填了8个字符之后发现长度被锁定了,这时候又到burpsuite出场了

    本来以为构造内容的时候要用ASCII码(还是十六进制的),先试试直接构造试一下,抓包后password改成' or 1=1;--,结果直接成功了

    4 LAB: SQL Injection Stage 3: Numeric SQL Injection

    Stage 2,4环境不支持。只能选3了,题目是作为普通员工的“Larry”,使用SQL注入到View函数的参数(从List Staff页面)来查看老板('Neville')的配置文件。

    我想了很久没想出来,终于忍不住看了提示,101 or 1=1 order by salary desc ,好像不行啊,标准答案又不行?
    确认自己按过restart绿色小勾已经没了,我的直觉告诉自己我怕是又绕进一些不该绕的地方了,百度WebGoat 7.0.1 LAB: SQL Injection Stage 3
    EXM???要先用密码larry登录Larry的账户,WTF???,我确认我用谷歌翻译的时候从没见到密码和用户名一样这种信息,我试过的,抓包改密码也登不上larry,我怀疑我读了假题目,感觉又在神奇的地方浪费时间了Orz

    知道了之后就好办了,登录,准备抓包,抓住ViewProfile的请求包,改employee_id,GO,终结这个伤心的题目

    5 Blind Numeric SQL Injection

    还是做课上做过的题找一下信心,目的是找到cc_number为1111222233334444的表pins中的pin,

    首先,101是真的,由此可以构造SQL

    101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444')>?);
    101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444')<?);
    

    即构造与pin的数值比较的语句,然后就是比大小的游戏了。我发现这里其实没有限制输入,连抓包都可以省了,配合End跳到最后修改,折半找,很快就确定为2364。

    6 Blind String SQL Injection

    想做之后才发现比上一个猜数字要难,首先要知道substring的用法,然后要慢慢猜数字,要猜五个,刚开始根本不会substring,还是参考了余佳源学长的实验报告做的。

    XSS

    7 Stored XSS Attacks

    让我们输入影响其他用户浏览的内容,在内容里随便写个脚本<script>alert(233hhhhhhhh);</script>

    还可以用来偷cookie,<script>alert(document.cookie);</script>

    8 Reflected XSS Attacks

    Enter your three digit access code:的输入总会被原封不动地返回,用上面的命令就可以,例如<script>alert(5120+document.cookie);</script>

    CSRF

    9 Cross Site Request Forgery (CSRF)

    做一个邮件,包含一个到指定网站的链接,让收到的人转5000$

    遗憾,这次我已经猜到参数要抄旁边的Parameters,可惜不会拼链接

    最后还是看了提示,标题随意,内容填<img src='attack?Screen=284 &menu=900 &transferFunds=5000'>

    10 CSRF Prompt By-Pass

    和上面一题一脉相承,要多构造一条确认语句,参数变了一下,有了上面的基础简直没难度啊,同样标题随意,内容

    233
    
    <img src='attack?Screen=269 &menu=900 &transferFunds=5000'>
    
    <img src='attack?Screen=284 &menu=900 &transferFunds=CONFIRM'>
    

    其他

    其实我本来还想做Psishing with XSS的,不过这个也是个我看了标准答案都没用的,我都填标准答案了还是不给我打勾,不知道又哪里绕进去了。
    不过光是骗骗用户名密码倒是做出来了

    还有CSRF Token By-Pass,本来也是向做的,不过后来感觉看不懂,填了参数mian不知道怎么得到想要的响应。

  • 相关阅读:
    有关创造力的书籍推荐
    如何做好组织管理?
    EMBA方面的经典自学教材、书籍推荐
    人力资源管理书单推荐
    创新创业类书籍推荐
    企业如何进行组织变革?
    VMS(VELO) tips[转载]
    SAP R/3系统的概念与介绍
    Project Record: RCM Program–Change Delivery Date in VMS Action[转载]
    SQL Server触发器创建、删除、修改、查看示例步骤
  • 原文地址:https://www.cnblogs.com/20145120hxx/p/6869296.html
Copyright © 2011-2022 走看看