利用TCP协议实现synflood攻击
运行syn攻击程序,以靶机为目标主机对其发送syn数据包,查看目标主机状态。
- 利用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
。 -
利用wireshark软件抓取SYN数据包
返回192.168.1.3机器,可以看到出现大量包:
- 课后习题:
- 如何防范xdos攻击:
定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。
在骨干节点配置防火墙。防火墙本身能抵御Ddos攻击和其他一些攻击。在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。
充分利用网络设备保护网络资源。 - 防病毒软件对于dos攻击来说是无效的。
- 根据TCP/IP协议,发送端发出SYN后,接收端返回SYN+ACK。
SQL注入原理-手工注入access数据库
SQL注入是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令。
- 找到有注入漏洞的目标网站
在网站链接的末尾添加'
,and 1=1
、and 1=2
来验证网站192.168.1.3:8008存在注入点:
- 猜解表名
在链接末尾添加语句and exists(select * from admin)
,页面正常,说明存在表名admin
:
用同样的方法证明存在列password
。 - 猜测字段内容
在链接末尾说如语句and (select top 1 len (admin) from admin)>1
,逐渐增加1知道页面出错,说明字段长为5:
用同样的方法,猜解除第一条记录第一位字符ASCII码为97,admin字段内容为admin,password字段内容为bfpms。
- 课后习题
如何高效地进行猜测:不要盲目遍历所有可能,而是从常规情况入手,例如admin字段内容常为admin;又如,采用二分法猜测字段长度,比如长度>1成功,长度>10错误,则可从5开始检查。
SQL注入原理-手工联合查询注入技术
- 检测字段长度
检测链接192.168.1.3:8008/onews.asp?id=45
,在后面添加order by 11
时显示正常,添加order by 12
时错误,说明此站字段长度为11:
- 暴露管理员用户、密码
在连接后面添加语句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
,即可暴露出用户名和密码:
- 课后习题
联合查询可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个表的查询组合到一起,使用谓词为UNION或UNION ALL。
SQL注入原理 -万能密码注入
用户进行用户名和密码验证时,网站需要查询数据库,查询数据库就是执行SQL语句。
- 访问目标站点
打开网页192.168.1.3:8009
,输入用户名admin
,密码2' or ' 1
,即可进入论坛。
DVWA之php+mysql手工注入
在用户的输入没有为转义字符过滤时,就会发生SQL injection形式的注入式攻击,它会被传递给一个SQL语句,这样就会导致应用程序的终端用户对数据库上的语句实施操纵。
- 打开
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语句中,带来了极大隐患。 - 中等等级代码分析
对输入的$id
进行mysql_real_escape_string()
函数处理,但只需要将攻击字符转换一下编码格式即可绕过防护函数。 - 高等级代码分析
对输入$id
进行stripslashed()
和mysql_real_escape_string()
函数处理,断绝了注入的存在。
动网论坛8.2经典注入漏洞利用
动网8.2在用户登录时过滤不严,可以导致注入,提升权限。
- 正常注册登录
访问192.168.1.3:8010/
,然后注册 - 漏洞测试与利用
使用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用户名和密码登陆,发现登陆成功。
- 课后习题
html注入不同于sql注入;name=zhang
中的zhang没有加引号。
跨站脚本攻击之反射型XSS
CSS指的是恶意攻击者往web页面里插入恶意代码,用户浏览该页时,嵌入其中的html代码会被执行,从而达到恶意攻击用户的目的。
- 打开测试站点
打开网页192.168.1.3:8006/input.htm
,输入hello并提交,结果正常。 - 在站点中输入XSS代码
输入XSS代码<script>alert('hello')</script>
提交,弹出对话框
- 课后习题
反射型XSS触发是主动触发的。
跨站脚本攻击之存储型XSS
跨站脚本攻击是指,用户可以向web页面里插入恶意html代码,当用户浏览该页时,html代码会自动执行从而达到恶意攻击用户的目的。
- 寻找XSS漏洞
登陆192.168.1.3:8080/2
点击在线留言。经过尝试发现页面对输入文字长度进行了限制。 - XSS漏洞利用
在留言标题处输入*/</script>
提交,再在标题处输入<script>alert(/xss/)/*
来配合上一段代码的执行:
当管理员进入管理后台后,查看留言管理,会触发恶意代码成功弹窗:
- 课后习题
- 如何判断页面存在XSS:采用盲打策略, 在对数据提交后展现的后台未知的情况下,网站采用了攻击者插入了带真实攻击功能的xss攻击代码(通常是使用script标签引入远程的js)的数据。通俗讲就是见到输入框就输入提前准备的xss代码。
- XSS其他利用方式:反射型xss,相对于存储型xss来说比较鸡肋;需要欺骗用户点击构造好的链接,达到窃取cookie,或是进一步CSRF劫持用户操作的目的。
- 存储型XSS不能盗取管理员cookie,因为权限不够,只能获取一般用户的cookie。
Csrf利用管理员权限创建后台管理账户
通过普通用户的存储型XSS实现创建管理员账户的CSRF利用。
- 测试漏洞
打开192.168.1.3:8007
,注册用户,登陆,添加二手信息并提交。弹出信息,说明漏洞存在:
-
利用漏洞
再添加一个物品,在物品内容处填写事先编写好的脚本,以管理员身份登陆系统并点击这个物品网页查看。退出后进入管理员系统,看到管理员中多了一个用户zhangsan:
并可直接以zhangsan的身份登陆管理员系统:
- 课后习题
DSRF漏洞的利用原理:与XSS不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。