• bugku web部分 (带了标题)


    [2,1]矛盾----------

    is_numeric在php里面是 是数字的意思

    这个啊,只要是不是纯数字也可以, 试了一下num=1*1  只要是一个字符串就行....不管是算式也好,一串什么其他也好....

    [2,2]web3----------

    【F12是看网页源代码/审查元素(可以编辑)】

    【Ctrl+u】直接强制查看源代码

    发现最后有蹊跷  注释掉的  这个常见的【】<!--&#75;&#69;&#89;&#123;&#74;&#50;&#115;&#97;&#52;&#50;&#97;&#104;&#74;&#75;&#45;&#72;&#83;&#49;&#49;&#73;&#73;&#73;&#125;-->

    这个是  unicode码。。。。。

    要转换成人看得懂的ascii码。。。。这文件说的没错。。。是你自己太小白了没理解。。。。

    站长工具 【编码转换】:http://tool.chinaz.com/Tools/unicode.aspx

    也可以直接回车。。。?

    [2,3]域名及解析----------

    参考:http://www.cnblogs.com/lxz-1263030049/p/9298704.html

    windows下修改的文件为:

    c:windowssystem32driversetchosts,出现没有权限的问题请参看这篇文章:https://www.cnblogs.com/lxz-1263030049/p/9298532.html

    这样就可以了,我们直接访问:http://flag.bugku.com/

    就会得到答案

    补课: 

    域名解析:

    域名解析是将域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

    hosts文件:

    Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
    需要注意的是,Hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。

    ---------------------补课来自 h0ryit 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/w0ryitang/article/details/80112185?utm_source=copy 

    [2,4]你必须让他停下

    涉及到一个软件  burpsuite 进行 抓包改包,查询漏洞,暴力破解

    配置浏览器代理?抓页面? send To repeater?

    然后再go 点几下就有回应了 

    或者 直接禁用js 在谷歌浏览器的选项里面禁止所有页面xx

    路径:【

    设置---高级----内容设置

    然而禁止了根本不行啊。。

    --来源都是四处copy 并非原创 个人学习用
    第三行开始
    [本地包含]
    include "flag.php";
    $a = @$_REQUEST['hello'];
    1._REQUEST[]函数: 它对get/Post都可以接受

    flag在那个php文件中,但是读不到,是本地的,要想办法[爆破]
    (1)可以用GET或POST方法为hello赋值进而为$a赋值
    (2)程序并未对hello的输入进行判断过滤
    (3)eval函数中执行的命令进而可以被$a的值所决定

    2.var_dump()是PHP中的调试函数,可以用var_dump打印所有的对象,查看对象内部的数据结构

    3.第二句话要获得hello的值,由于hello为’hello’,所以无论在url栏中对hello赋任何值,都会全盘接受,其中var_dump()是将a打印到界面中,在根据eval函数的特性(计算后面括号中的表达式)

    构造如下:http://120.24.86.145:8003/?hello=1);print_r(file("./flag.php"));%23
    使原文语句为
    eval(“var_dump(1);print_r(file(“./flag.php”))”)

    4.(不懂诶..)这个%23是url编码 # %23
    之前有学过那个应该是?hello=1
    但是后面咋又那个);是啥,....
    print_r(file("flag.php"));%23 (最后加个#,完结有分号

    5.还可以:?hello=file_get_contents('flag.php')
    再f12 就可以
    file_get_contents() 函数把整个文件读入一个字符串中。
    感觉只要 hello有了值,就可以继续往后xxx,然后我们只需要把那个show的显示出来,,调用一个函数
    或者:http://120.24.86.145:8003/index.php?hello=1);show_source(%27flag.php%27);var_dump(3
    eval() 存在注入漏洞 使用hello构造payload即可

    [跳过](php臣妾实在是完全不懂啊...)


    [web5]

    这个查看源代码,发现了jother编码,直接放到浏览器(先f12)然后再console一下就好了... (console是控制台的意思)
    对jother只是初步了解,它也是一种编码方式,不过有点另类,其中的基础不是0、1,而是特定的字符:“+”、“!”、“(”、“)”、“[”、“]”、“{”、“}",服务于javascript语言,编码出精简的匿名函数对与字符串如“ctf{whatfk}”字符串

    [头等舱]
    什么也没有...
    html里也没有
    burpsuite抓包

    【补充:抓包肯定是头部!!要在burp里面好好找(问了zj)】


    第四行
    [网站被黑]

    经常遇到,加了Index.php发现是php 用御剑跑一下...发现还有一个后台界面.....
    pass 密码不知道
    直接burp爆破,simple 字典 passwords/
    short words......
    PS:webshell一般大多数人用的都是英文密码或者简单的弱密码,一般的字典都可以破解开的。

    (>>?????)

    【这里重做的时候发现 simple words和那个passwords不一样。。。。】

    【要多试验几次。。。。 】

    【这个也还真的是!!!!只有多试验多试错  看题解想出来的和自己 就知道的 还是不一样鸭】


    分享链接:
    多得是,你不知道的事(不要看表面现象):https://www.jianshu.com/p/9d1df93b9b2e?utm_campaign=maleskine&utm_content=note&utm_medium=pc_all_hots&utm_source=recommendation
    如何叠衣服:https://www.sohu.com/a/198526273_365401

    [4,2]

    [管理员系统]

    【notice】F12按下查看元素  和直接显示出来的源代码不一样。。。

    F12之后发现了一小段源代码 (base 64编码)

    唔... 这样就像是 在解密游戏

    只有密码test123   用户名admin(本地....)的时候改一个包

    【burp使用】[星号]

    只有在代理服务器里面把包改掉 改成本地截留

    自己拦下来之后 .....send to repeater   改包把包改掉  然后继续GO发出去

    就可以发送修改过的包了  是不是很强

    参考地址: https://blog.csdn.net/jinzhichaoshuiping/article/details/47324955

    而且可以直接把网页上搞过来的东西继续改

    简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP

    那么我们伪装成本地登录就可以了 把包的xff头设置为本地 127.0.0.1

    注意头部这个东西是  X-Forwarded-For

    【改完之后记得要把代理设置改回来!!!,,,】

    (下面黑色为转载)

    dGVzdDEyMw== 很明显是Base64编码格式

    X-Forwarded-For
    X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。

    ===================

    网页上都是明码传输的

    连人家的wifi   真的 就完全可以截留你输入的xxx密码

    马上就能二次支付.....

    http: // https://  (s)就有了加密证书  没错的

    老师: 你们交的这些作业都是小玩意儿  到企业里都没用的

    对你来说 你高层次的人要看到别人书本上学不到的东西 看到别人看不到的东西

    优秀变成卓越需要付出代价和时间 要知识继续来重塑自己

     [4,3] web4

    发现这个%什么的 是JavaScript里面一个函数 escape() 和unescape() 用于加密和解密....

    站长工具在线解密就可以了...  

    http://tool.chinaz.com/Tools/escape.aspx

    然后......  

    key一定是带好了{}的格式吧.... !! 找到之后 提交到原来的网页上去 submit  出来flag  再交回bugku里面去...

    [5,1]输入密码查看flag

    burp爆破...  现在开始熟练一些了..

     发到Intruder里面就是爆破啦啦啦.. 而不像repeater里面要改掉包

    然后发现不对....  要选对weizhi , pwd  稍微手动设置一下就好了

    然后再抓  length不同的意思就是返回的值不同因为密码总不和以前的返回一样了 所以拿个不一样就又是密码了...

    选项里面  

    [5,2]

    [点击一百万次]

    还好吧 ... js学一点,然后火狐hackbar直接发送一个clicks=1000000.....

    get改成post(?)

    但是  直接在源代码上面改了没用 

    emmmm  改了之后 改成99999/100000  再点一下就没了...  恢复到4/....  

    所以还是下面.............

    当满足条件后,会执行post clicks=1000000

    所以我们直接用hackbar来post

    这个js代码不错哦  听炫酷的/// 一点击就会变起来

     var clicks=0
        $(function() {
          $("#cookie")
            .mousedown(function() {
              $(this).width('350px').height('350px');
            })
            .mouseup(function() {
              $(this).width('375px').height('375px');
              clicks++;
              $("#clickcount").text(clicks);
              if(clicks >= 10){
                  var form = $('<form action="" method="post">' +
                            '<input type="text" name="clicks" value="' + clicks + '" hidden/>' +
                            '</form>');
                            $('body').append(form);
                            form.submit();
              }
            });
        });
      

    [5,3]备份是个好习惯

    [6,2] 速度要快

    https://base64.supfree.net/  随便找了 一个加密解密的东西

    /////....  要脚本啊..... 算了算了...

    [6,3]cookies欺骗

    查看源代码的时候上面的url竟然还有花招:

    这个东西是base64  解密一下

    随便找个地方解密就行...发现是keys.txt

    哇,.....  然后就转换  最开始换成index.php的base64编码 放到后面

    源代码有提示说line=xxx  开始判断line=从1开始爬... (其实可以使用python好了这里略去)

    接下来是看不懂的php代码.....(补php  T.T)

    真是鸡贼.....【中间会有空格】 每空一行 一行代码

    【所以  最好是爬下来 看地址 https://blog.csdn.net/qq_26090065/article/details/81588595 】

     哇。。。。 还是要自己看php代码最厉害 。。。 我搞了半天

    具体步骤如下:

    把源代码网址里面的keys.txt改成keys.txt(趴下来的代码里写的)

    然后hackbar发包改东西 

    然后查看源代码就可以了......

    注意留意网页上的一些提示  比如这个页面除了源代码之外还有url 

    不行burp抓包里面也有很多东西的

    稍微总结一下套路

    【一般啊似乎可以是用burp  抓包  (本地)然后改包  改掉之后继续xxx】这个相当于是火狐浏览器的hackbar(可以发post,可以改cookie)

     最后写成这个样子。。改了半天 

    把url load进去 再点那个按钮

    [6.4]never give up

    发现注释掉的有一个1p.html  访问

    发现%,,的一堆先escape解码 然后base64解码

    然后一堆看不懂的php代码...但是吧 其实中间有个东西  f4l2a3g.txt 试验一下果然可以诶.... 

    然后就好了  难得-.-

    ================ 

    该开新的帖子了... 

    【留意网页上所有给的信息】 充分挖掘.....  充分挖掘..... 充分挖掘....

    【多尝试 多试验 多test  】

     [前女友]

    这个也是充分挖掘吧 首先链接

    然后php漏洞: 

     if($v1 != $v2 && md5($v1) == md5($v2)){
            if(!strcmp($v3, $flag)){
    两个东西不相等 但是md5加密之后还相等
    strcmp v3和flag相等才可以
    这样....emmm... 我们人工达到不了就漏洞:当他是数组的时候就崩了 返回0
    那么就构造a[0]=... a[1]=... a[2]=... 就好了....
    [【向zj好好学习!!!!发现问题的能力 解决的能力】
  • 相关阅读:
    更新ubuntu的源
    List<?>和List<Class<?>>区别及泛型相关
    MessageDigest类实现md5加密
    Oracle插入多个值的问题
    Oracle用户的初始化问题
    Linux 环境变量详解
    oracle数据库与实例
    Oracle基础--命令
    SQL 三种基本Join
    三种Join方法
  • 原文地址:https://www.cnblogs.com/lx2331/p/9724956.html
Copyright © 2020-2023  润新知