ffbe0419857d4d8b38a660c9d071e2f099e2bcdb673849c2cb83a442adcbd53cc468d0c72594e5b280b549d5293adc15ff638badd6a26b36c101080c573fc8c0e4a8a05bc9b7534c77a0df7f7b80979d7945186aba8b98b7d1523fcbf559ee97e27e0df97117a4876e471fc52d6c36414511ff9095759d03fecd428771f1a651f63c6da9d5f9c55b55037e4f918e47f40020d0e4456755c287ae16e83424e333475c38c0a38040fcc4047cd8e8e33aaee3a7ef29e949eec3a6b9ede34077211191388adcfd23b4479b557f3aae6e6c21ac32ce696931bcd615a8f54005d5f661984732dab1433bec4f40c54e807a9b9ff03c289596c38914a ...
[羊城杯2020]easyphp打开就是源代码 123456789101112131415161718192021222324252627282930313233 <?php $files = scandir('./'); foreach($files as $file) { if(is_file($file)){ if ($file !== "index.php") { unlink($file); } } } if(!isset($_GET['content']) || !isset($_GET['filename'])) { highlight_file(__FILE__); die(); } $content = $_GET['conten ...
October 2019 Twice SQL Injection如题所见是个二次注入, 在info中输入 1' or 1=1#得到 用1' union select database() #作为用户名注册进去得到 接下来直接手注入就好。 1' union select group_concat(table_name) from information_schema.tables where table_schema='ctftraining' # 1' union select group_concat(column_name) from information_schema.columns where table_name='flag' # 1' union select flag from flag # [BJDCTF2020]EzPHP查看源代码有 base32解密得到 1nD3x.php进入得到源代码 12345678910111213141516171819202122232425262728 ...
你也喜欢SQL注入吗?(MySQL为例MySQL语句登录 本地 12mysql -u username -ppassword 远程 12mysql -h ip -p port -u username -ppassword 库1234567891011-- 创建数据库CREATE DATABASE 数据库名;-- 删除数据库drop database 数据库名;-- 查看数据库show databases;-- 选择数据库use 数据库名; 数据类型数值类型 类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 Bytes (-128,127) (0,255) 小整数值 SMALLINT 2 Bytes (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3 Bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4 Bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 ...
so绕过disable_function与LD_PRELOAD劫持学习此绕过方式只适用于未禁用putenv()的PHP5环境。 这里使用NepCTF2023的一道题来做示例 123456789101112131415<?php$jump_link = $_GET['link'];if (isset($jump_link)) { include($jump_link. ".txt"); // More info? See "/var/www/html/hint.ini" or "./hint.ini"} else if (isset($_GET['hint'])) { highlight_file(__FILE__); }if (!isset($_GET['hint']) && !isset($jump_link)) {?>所以到底来没来? 且看 /<?php ech ...
preg_replace与代码执行事情起源于[BJDCTF 2020]ZJCTF这道题让我看到了新的东西,关键代码如下。 123456789101112131415161718192021<?php$id = $_GET['id'];$_SESSION['id'] = $id;function complex($re, $str) { return preg_replace( '/(' . $re . ')/ei', 'strtolower("\\1")', $str );}foreach($_GET as $re => $str) { echo complex($re, $str). "\n";}function getFlag(){ @eval($_GET['cmd']);}?> ...
分析PHP中的文件包含日志包含漏洞日志包含漏洞属于是本地文件包含,同样服务器没有很好的过滤,或者是服务器配置不当导致用户进入了内网,本来常规用户是访问不了这些文件的,但由于发起访问请求的人是服务器本身,也就导致用户任意文件读取。 下面是常用的日志路径 apache服务器日志存放文件位置:/var/log/apache/access.log nginx服务器日志存放位置:/var/log/nginx/access.log和/var/log/nginx/error.log apache的服务器日志会写入url,nginx的服务器日志会写入user-agent 示例: 123456789101112//[HNCTF 2022 WEEK2]easy_include<?phpif(isset($_GET['file'])){ $file = $_GET['file']; if(preg_match("/php|flag|data|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\_|\ ...
Linux提权2023洋葱杯有一道python的pickle反序列化的题,弹到shell了但是Linux提权不熟悉,在此总结反思…… 前面有flask_session伪造,不再赘述,后半段源代码如下。 123456789101112131415161718192021222324252627282930313233343536373839404142434445from flask import Flask, request, make_responseimport base64import pickleapp = Flask(__name__)# 路由处理函数,返回包含代码的片段@app.route('/src0de')def src0de(): f = open(__file__, 'r') rsp = f.read() f.close() return rsp[rsp.index("@app.route('/src0de')"):]# 路由处理函数,处理 pick1e cook ...
CTF_web入门信息泄露查看源代码页面源代码是信息的一个重要来处F12和右击查看源代码都可以 目录扫描dirsearch与御剑 dirsearch安装:apt install dirsearch git泄露GitHacker安装与使用 12345678910# installpython3 -m pip install -i https://pypi.org/simple/ GitHacker# print help infogithacker --help# quick startgithacker --url http://127.0.0.1/.git/ --output-folder result# brute for the name of branchs / tagsgithacker --brute --url http://127.0.0.1/.git/ --output-folder result# exploit multiple websites, one site per linegithacker --brute --url-file websites.t ...
python
未读Python_web原型链污染合并函数python的原型链污染和JavaScript一样,是由数值合并函数引起的,下面就是一个标准的数值合并函数。 123456789101112def merge(src, dst): # Recursive merge function for k, v in src.items(): if hasattr(dst, '__getitem__'): if dst.get(k) and type(v) == dict: merge(v, dst.get(k)) else: dst[k] = v elif hasattr(dst, k) and type(v) == dict: merge(v, getattr(dst, k)) else: setattr(dst, k, v) 代码的逻辑如下: 对于源字典(src)中的每个键值对( ...