98
社区成员




(1)Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
(2)Web前端javascipt
理解JavaScript的基本功能,理解DOM。
在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
尝试注入攻击:利用回显用户名注入HTML及JavaScript。
(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
(4)Web后端:编写PHP网页,连接数据库,进行用户认证
(5)最简单的SQL注入,XSS攻击测试
(6)安装Webgoat或类似平台,并完成SQL注入、XSS、CSRF攻击。
kali虚拟机中自带Apache,不必安装,直接就可以启动。
打开Aoache后,在浏览器中输入本机IP127.0.0.1,可以看到打开了Apache的界面,Apache已经成功开启。
打开kali的/var/www/html文件夹,新建一个html文件,放入代码(这里我用的是去年web编程课的代码)。
保存退出,双击运行,可以看到出现了登录页面。不过这份代码其实还没有其它的功能,需要进一步修改和完善。
这里我简单说一下我对于get和post方法的理解,这二者的区别主要在于:get提交的数据是封装在请求头中的,所以其中的信息会直接在url里面显示出来;而post提交的数据封装在请求体里,安全性更好,不会直接就被获取信息。
我们进一步完善代码,在之前添加一段JavaScript代码。
这里有两点要注意,这个表单的action,因为/var/www/html文件夹里没有serverlet文件让它跳转,为了防止报错我把action的值删掉了;表单里按钮要加一个onclick="return validateform"的属性,不然js读不到提交的数据,点按钮也不会有反应。
这段JavaScript代码的主要功能就是,判断用户输入的用户名是不是空的,如果是空的就报提示;然后检测密码是不是空的,如果是空的也报提示;如果用户名和密码都不为空,那么就跳转欢迎界面。
然后我们尝试回显用户名注入HTML。
在登陆页面的用户名框里输入
<p>20212316HTMLtest</p>
效果如下:
接下来尝试注入JavaScript。
在用户名框中输入
<script type="text/javascript"> alert("20212316JavaScript test") </script>
点击之后会有弹窗,效果如下:
kali同样自带mysql,直接开启服务即可。
第一次MySQL进入先用root账户,密码就是你kali的root密码。进去之后先查看有哪些库。
我们选择mysql这个库,这里面存的是mysql的用户信息。查看一下用户表数据,给root用户设一个新密码。
设置完了ctrl+c退出mysql,用新密码登录MySQL的root用户,再看一下密码设置情况。
然后我们为这次实验的网站新建一个数据库,就叫20212316szc,选择该数据库,创建一个新的用来存储网站用户信息的表,再插入一条用户名为szc,密码是20212316的数据。
输入指令
grant select,insert,update,delete on szc.* to szc@localhost identified by "20212316"
确保一会在网页后端可以直接用szc的用户名和20212316的密码访问数据库(忘截图了)。
然后退出mysql重新用着对用户名密码登录一次,看看设置成功没有
在var/www/html文件夹中新建一个php文件,编写代码:
代码写完了,双击html文件运行一下,先尝试用数据库里有的用户名和密码登录。
再试一下随便输一个用户名和密码。
先测试sql注入,随便输入一个用户名,然后密码输入' or 1=1#,可以登陆成功。
测试XSS攻击,在用户名框输入,会出现弹窗。
这次实验我使用的是之前安装好的pikachu靶场平台,一样可以完成SQL注入、XSS、CSRF攻击。
先完成sql注入,还是构造永真式然后把后面的代码注释掉。
再来XSS攻击,原理还是直接构造JavaScript代码块。
最后尝试CSRF攻击,我选择的是get型的。先摁F12打开浏览器的控制台,选择网络监控,这样就可以检测pikachu的网络请求了。
然后再pikachu登录账户,点击修改用户信息,随意修改,修改完了点击submit。在点击submit的一瞬间,请求应该就已经发送出去被我们的控制台捕捉到了,我们可以看到其中的信息。
把请求网址复制下来,修改其中的信息,比如我把请求里的add换成24szc,再把修改后的请求网址用浏览器打开,我们可以看到kobe的住址神不知鬼不觉地变成了24szc。
问题:在打开pikachu平台的CSRF训练后,发生如下报错:
解决:在网上搜了一下,这好像是版本不兼容的问题,跟着报错的路径打开文件,把MYSQL_ASSOC改成MYSQLI_ASSOC即可。
这是网络攻防的最后一次实验,终于结束了!其实在之前的web网络编程课和信息安全保障技术课中我们就已经解除了网络编程和html语言,所以这次实验对我来说还是比较轻松的,当然,也接触到了一些新的内容。之前我没有尝试过写php文件和CSRF攻击,在这次实验中进行了实践,掌握了这些新的技能,同时还温习了之前的知识,收获不小。