20242943 2024-2025-2 《网络攻防实践》实践十报告

一.实践内容

本次实验包括SEED SQL注入攻击与防御实验和SEED XSS跨站脚本攻击实验(Elgg)两部分。
在SEED SQL注入攻击与防御实验中,我们需要在SEEDLabSQLInjection.com网站中,通过Web应用程序查看和更新数据库中的个人信息并完成以下任务:
1、熟悉SQL语句:创建了一个名为Users的数据库,其中包含一个名为creditential的表。该表存储了每个员工的个人信息,我们要使用数据库来数学SQL查询。
2、对SELECT语句的SQL注入攻击:上述Web应用存在SQL输入漏洞,任务是在不知道密码的情况下登陆该Web应用程序。
3、对UPDATE语句的SQL注入攻击:通过员工的更新个人界面实施UPDATE语句的SQL注入攻击。
4、SQL对抗:修复上述SQL注入攻击漏洞。
在SEED XSS跨站脚本攻击实验(Elgg)中,我们需要利用xss漏洞对经过修改的Elgg发起XSS攻击,以此在用户之间传播XSS蠕虫。需要完成以下任务:
1、发布恶意消息,显示警报窗口:在Elgg配置文件中嵌入一个JavaScript程序,当另一个用户查看配置文件时,将执行JavaScript程序并显示一个警报窗口。
2、弹窗显示cookie信息:将cookie信息显示。
3、窃取受害者的cookies:将cookie发送给攻击者。
4、成为受害者的朋友:使用js程序加受害者为朋友,无需受害者干预,使用相关的工具了解Elgg加好友的过程。
5、修改受害者的信息:使用js程序使得受害者在访问Alice的页面时,资料无需干预却被修改。
6、编写XSS蠕虫。
7、对抗XSS攻击。

二.实践过程

1.SEED SQL注入攻击与防御实验。

(1)熟悉SQL语句。

登录mysql数据库,命令为mysql -u root -p,密码为seedubuntu。
查看已有的库,命令为show databases;。
查看数据表,命令为use Users;和show tables;。
查看数据表的具体内容,命令为select * from credential;。



(2)对SELECT语句的SQL注入攻击。

①打开网站www.seedlabsqlinjection.com。

②用F12打开网页的监控,随便输入一个用户名密码登录,可以看到我们输入的用户名和密码都是进入到unsafe_home.php文件中检验。

③可以在终端中打开这个文件,命令为vim /var/www/SQLInjection/unsafe_home.php。
找到这个条件语句:if user is admin,当用户名是admin时,数据库便会返回credential表的信息。

④通过语句$sql = "SELECT id, name, eid, salary, birth, ssn, phoneNumber, address, email,nickname,Password FROM credential WHERE name= '$input_uname' and Password='$hashed_pwd'";得知,我们可以将密码注释,绕过密码的检验,因此只需要输入admin'#就可以返回我们需要的信息了。


(3)对UPDATE语句的SQL注入攻击。

①打开Edit Profile界面,利用同样的方法,可以看到更新的数据都是进入到了unsafe_edit_backend.php文件中。

②打开unsafe_edit_backend.php文件,可以看到它的sql语句为UPDATE credential SET nickname='$input_nickname',email='$input_email',address='$input_address', Password='$hashed_pwd', PhoneNumber='$input_phonenumber' WHERE ID=$id;

③登录某一位用户界面,通过NickName修改他的信息,列如将Alice的薪水从20000修改为100000,输入为', salary='100000' where Name='Alice';#。

④如图修改成功。

(4)SQL对抗。

可以对两个文件中的sql语句做如下修改。


2.SEED XSS跨站脚本攻击实验(Elgg)。

(1)发布恶意消息,显示警报窗口。

①在浏览器中打开www.xsslabelgg.com网站, 登录Alice账号,密码是seedalice。

②点击头像-->Edit Profile-->Brief description,在Brief description中输入。然后点击“save”,保存。

③之后再访问Alice的主页时,都会弹出20242943的窗口。

(2)弹窗显示cookie信息。

①将Brief description框中的代码改成xss攻击代码。

②弹窗可显示cookies信息。

(3)窃取受害者的cookies。

①先查看攻击者的ip地址:192.168.25.137。

②将Brief description框中的代码改成xss攻击代码。

③在终端监听5555窗口,命令为nc -l 5555 -v。然后用任意用户访问Alice的主页,终端便可以接收到该用户的cookie。

(4)成为受害者的朋友。

①使用Boby访问Alice的主页,打开网页监控,添加Alice为朋友,可以看到friend为44以及一些其他的信息。

②使用这些信息构造payload,输入到About me中,输入之前需要先点击一下右上角的edit html,保存。

③然后就可以看到好友已自动添加。

(5)修改受害者的信息。

①构造下面的payload,输入到Alice的About me中,输入之前先点击edit html,保存。

②然后登录Boby的账户,进入Alice的个人主页,可以发现Boby的个人信息已经被修改为sunweitao。

(6)编写XSS蠕虫。

①编写XSS蠕虫代码,输入到Alice的About me中,输入之前先点击edit html,保存。

②Boby访问Alice的主页,Boby被感染。

③然后登录Samy,去访问Boby的主页,Samy也被感染。这说明蠕虫病毒有传染性。

(7)对抗XSS攻击。

①登录admin账户,依次点击Account->administration->plugins->Security and Spam,找到HTMLawed插件,点击activate。

②再次登录Alice账户,可以看到xss攻击已经被防御。

三.实践总结

在SQL实验中,先是熟悉了SQL的查询语句,然后利用SQL漏洞构造SQL注入语句,分别对SELECT语句和UPDATE语句进行了攻击,最后修复SQL漏洞;在XSS实验中,我们同样是进行了发布恶意消息显示警报窗口、弹窗显示cookie信息、窃取受害者的cookies、编写XSS蠕虫等一系列XSS攻击,最终修复XSS漏洞。本次实验虽然任务量较多,但理解起来并不难,之前对相关的知识也有过学习,最大的不足之处是在于payload攻击语句的编写,后面我也会对这一部分进行补充学习。
posted @ 2025-05-20 17:30  ssswwwttt  阅读(54)  评论(0)    收藏  举报