xctf新手练习https://adworld.xctf.org.cn/task/task_list?type=misc&number=1&grade=0

view source

Q:无法用鼠标右键查看原码,怎么办?
A:浏览器地址栏在网址前输入 view-source: 即可查看源码

get post

Q:用 get 提交 a=1,用 post 提交 b=2
A:url后加 ?a=1,用 hackbar 提交b=2

robots

Q:robots.txt
A:域名后加 robots.txt

backup

Q:找到网站的备份文件
A:暴力域名。常见备份后缀git .svn .swp .~ .bak .bash_history

cookie

Q:cookie
A:用F12查看cookie到cookie.php,查看消息头

disable button

Q:前端知识:如何按一个按不了的按钮
A:F12 将按钮的disable删除

simple js

Q: A:网页源码

<script type="text/javascript">
function dechiffre(pass_enc){
    var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
    var tab  = pass_enc.split(',');
    var tab2 = pass.split(',');
    var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
                    k = j + (l) + (n=0);
                    n = tab2.length;
                    for(i = (o=0); i < (k = j = n); i++ )
        {o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
                            if(i == 5)break;}
                    for(i = (o=0); i < (k = j = n); i++ ){
                    o = tab[i-l];
                            if(i > 5 && i < k-1)
                                    p += String.fromCharCode((o = tab2[i]));
                    }
    p += String.fromCharCode(tab2[17]);
    pass = p;return pass;
}
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
h = window.prompt('Enter password');
alert( dechiffre(h) );

\x35\x35\x2c\x35。。。为一串编码,用python转为数字字符串,再转出相应编码的字符

xff_referer

Q:伪造 xff 与 referer头 A:用代理工具添加 X-Forwarded-For 与 Referfer, 键值对的键首字母要大写

X-Forwarded-For(XFF)
是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。通俗来说,就是浏览器访问网站的IP。一般格式:
==>    X-Forwarded-For: client1, proxy1, proxy2, proxy3
左边第一个是浏览器IP,依次往右为第一个代理服务器IP,第二个,第三个(使用逗号+空格进行分割)  

weak auth

Q:用 admin 登录。
A:用字典暴力。是123456

web shell

直接用菜刀连,或用php命令慢慢试。

command_execution

命令执行漏洞,; + 命令

simple_php

?<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
    echo $flag1;
}
if(is_numeric($b)){
    exit();
}
if($b>1234){
    echo $flag2;
}
?>

要 $a == 0,且不能等同false。即$a可强制转为0但不能是0。可用 0+字母。
$b 不能是数字且大于1234,可用 1235%00 将 is_numeric函数截断。

猜你喜欢

转载自www.cnblogs.com/zhangzixian/p/10913756.html