网络安全实验报告 第二章

2017-04-24  本文已影响286人  yingtaomj

利用TCP协议实现synflood攻击

运行syn攻击程序,以靶机为目标主机对其发送syn数据包,查看目标主机状态。

  1. 利用xdos工具进行攻击
    首先在192.168.1.3的目标机器上打开wireshark,过滤出ip.dst=192.168.1.3的IP包。
    再在192.168.1.2的发动攻击的主机上输入命令:192.168.1.3 135 -t 3 -s 55.55.55.55
  2. 利用wireshark软件抓取SYN数据包
    返回192.168.1.3机器,可以看到出现大量包:


  3. 课后习题:

SQL注入原理-手工注入access数据库

SQL注入是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令。

  1. 找到有注入漏洞的目标网站
    在网站链接的末尾添加'and 1=1and 1=2来验证网站192.168.1.3:8008存在注入点:
  2. 猜解表名
    在链接末尾添加语句and exists(select * from admin),页面正常,说明存在表名admin

    用同样的方法证明存在列password
  3. 猜测字段内容
    在链接末尾说如语句and (select top 1 len (admin) from admin)>1,逐渐增加1知道页面出错,说明字段长为5:

    用同样的方法,猜解除第一条记录第一位字符ASCII码为97,admin字段内容为admin,password字段内容为bfpms。
  4. 课后习题
    如何高效地进行猜测:不要盲目遍历所有可能,而是从常规情况入手,例如admin字段内容常为admin;又如,采用二分法猜测字段长度,比如长度>1成功,长度>10错误,则可从5开始检查。

SQL注入原理-手工联合查询注入技术

  1. 检测字段长度
    检测链接192.168.1.3:8008/onews.asp?id=45,在后面添加order by 11时显示正常,添加order by 12时错误,说明此站字段长度为11:
  2. 暴露管理员用户、密码
    在连接后面添加语句union select 1,2,3,4,5,6,7,8,9,10,11 from admin,页面显示数字2和3:

    再添加语句union select 1,admin,password,4,5,6,7,8,9,10,11 from admin,即可暴露出用户名和密码:
  3. 课后习题
    联合查询可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个表的查询组合到一起,使用谓词为UNION或UNION ALL。

SQL注入原理 -万能密码注入

用户进行用户名和密码验证时,网站需要查询数据库,查询数据库就是执行SQL语句。

  1. 访问目标站点
    打开网页192.168.1.3:8009,输入用户名admin,密码2' or ' 1,即可进入论坛。

DVWA之php+mysql手工注入

在用户的输入没有为转义字符过滤时,就会发生SQL injection形式的注入式攻击,它会被传递给一个SQL语句,这样就会导致应用程序的终端用户对数据库上的语句实施操纵。

  1. 打开192.168.1.3:8080/dvwa/login.php,输入用户名和密码登陆。将DVWA的安全级别调整为low,选择SQL injection,进入页面。当如输入正确的用户ID时,将显示相关信息:

    当输入'时则报错:

    输入1 or 1=1时并没有达成遍历数据库表的目标,猜测程序将此处看成了字符型,可以尝试:1' or '1' =' 1后遍历出所有内容:

    由下图判断查询结果值为2列:

    通过使用user() databse() version()三个内置函数得到数据库的账户名、数据库名、版本信息:




    通过注入1' and 1=2 union select 1,schema_name from information_schema,schemata --获取所有数据库名字:

    猜解dvwa数据库中的表名:

    猜解字段名:

    通过代码可以看出,对输入的值没有进行任何过滤就直接放入了SQL语句中,带来了极大隐患。
  2. 中等等级代码分析
    对输入的$id进行mysql_real_escape_string()函数处理,但只需要将攻击字符转换一下编码格式即可绕过防护函数。
  3. 高等级代码分析
    对输入$id进行stripslashed()mysql_real_escape_string()函数处理,断绝了注入的存在。

动网论坛8.2经典注入漏洞利用

动网8.2在用户登录时过滤不严,可以导致注入,提升权限。

  1. 正常注册登录
    访问192.168.1.3:8010/,然后注册
  2. 漏洞测试与利用
    使用san' and 'a' =' a的用户名和密码1234567登录,显示:

    输入';update dv_user set usergroupid=1 where username='san'--,提示用户名不存在:

    但是重新登录san时可看到已经拥有管理员的权限:

    退出,输入密码为san';insert into dv_admin(username,password,flag,adduser)....,从管理员页面192.168.1.3:8010/admin使用san用户名和密码登陆,发现登陆成功。
  3. 课后习题
    html注入不同于sql注入;name=zhang中的zhang没有加引号。

跨站脚本攻击之反射型XSS

CSS指的是恶意攻击者往web页面里插入恶意代码,用户浏览该页时,嵌入其中的html代码会被执行,从而达到恶意攻击用户的目的。

  1. 打开测试站点
    打开网页192.168.1.3:8006/input.htm,输入hello并提交,结果正常。
  2. 在站点中输入XSS代码
    输入XSS代码<script>alert('hello')</script>提交,弹出对话框
  3. 课后习题
    反射型XSS触发是主动触发的。

跨站脚本攻击之存储型XSS

跨站脚本攻击是指,用户可以向web页面里插入恶意html代码,当用户浏览该页时,html代码会自动执行从而达到恶意攻击用户的目的。

  1. 寻找XSS漏洞
    登陆192.168.1.3:8080/2点击在线留言。经过尝试发现页面对输入文字长度进行了限制。
  2. XSS漏洞利用
    在留言标题处输入*/</script>提交,再在标题处输入<script>alert(/xss/)/*来配合上一段代码的执行:

    当管理员进入管理后台后,查看留言管理,会触发恶意代码成功弹窗:
  3. 课后习题

Csrf利用管理员权限创建后台管理账户

通过普通用户的存储型XSS实现创建管理员账户的CSRF利用。

  1. 测试漏洞
    打开192.168.1.3:8007,注册用户,登陆,添加二手信息并提交。弹出信息,说明漏洞存在:
  2. 利用漏洞
    再添加一个物品,在物品内容处填写事先编写好的脚本,以管理员身份登陆系统并点击这个物品网页查看。退出后进入管理员系统,看到管理员中多了一个用户zhangsan:



    并可直接以zhangsan的身份登陆管理员系统:


  3. 课后习题
    DSRF漏洞的利用原理:与XSS不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。
上一篇 下一篇

猜你喜欢

热点阅读