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攻击已经被防御。


浙公网安备 33010602011771号