寒假学习周报2.22

本周学习的主要内容有
学习完了js 浅层次入门sql使用 xss的练手
一js(总算学习完了)
如图
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二浅层次sql学习
如图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三 xss练手
因为上一周学习了html php js 所以现在可以看得懂代码了
也可以开始迈出 安全员的第一步了
http://test.ctf8.com/ 靶场
请先关闭 浏览器xss防护 否则gg

<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()  
{     
confirm("完成的不错!");
 window.location.href="level2.php?keyword=test"; 
}
</script>
<title>欢迎来到level1</title>
</head>
<body>
<h1 align=center>欢迎来到level1</h1>
<?php 
ini_set("display_errors", 0);
$str = $_GET["name"];
echo "<h2 align=center>欢迎用户".$str."</h2>";
?>
<center><img src=level1.png></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>
</body>
</html>

第一关
window.alert = function() 可以看出 只要检测到弹框函数,就可以触发进入下一关的函数。也就是说只要触发alert即可

<?php 
ini_set("display_errors", 0); //貌似是不报错代码
$str = $_GET["name"];
echo "<h2 align=center>欢迎用户".$str."</h2>";
关键的php代码块
http://test.ctf8.com/level1.php?name=

name后面就是接收字符的地方
含义是使用超级全局变量 使用get从url中收取一段字符,再显示这一段字符的长度和字符本身(也就是说正常情况下,你输入什么他显示什么)
所以直接使用script即可
输入<script>alert(1)</script>
触发alert函数,进入下一关

在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()  
{     
confirm("完成的不错!");
 window.location.href="level3.php?writing=wait"; 
}
</script>
<title>欢迎来到level2</title>
</head>
<body>
<h1 align=center>欢迎来到level2</h1>
<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level2.php method=GET>
<input name=keyword  value="'.$str.'">
<input type=submit name=submit value="搜索"/>
</form>
</center>';
?>
<center><img src=level2.png></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>
</body>
</html>

多了一个表单,可以从表单里直接接收数据,从php中可以看见
htmlspecialchars过滤了部分字符 《》行不通了
有两种思路
第一种,那就索性不用script了,借助表单的性质,用onclick来触发alert函数,只要到时候再点击表单即可。
在这里插入图片描述
第二种,先闭合掉再触发alert函数,还是使用script
在这里插入图片描述

<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()  
{     
confirm("完成的不错!");
 window.location.href="level4.php?keyword=try harder!"; 
}
</script>
<title>欢迎来到level3</title>
</head>
<body>
<h1 align=center>欢迎来到level3</h1>
<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center>
<form action=level3.php method=GET>
<input name=keyword  value='".htmlspecialchars($str)."'>
<input type=submit name=submit value=搜索 />
</form>
</center>";
?>
<center><img src=level3.png></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>
</body>
</html>

第三题
过滤更加严格了,《script、》的过滤更加严格了,只能使用第一种方法
顺便使用//打掉后面的代码
在这里插入图片描述

然后寒假要求 要求是多学,而不是深究,再加上后面的部分代码超过了目前自学php的范围,所以暂时就没有往后做了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值