7.13刷题
7.13刷题[NewStarCTF 公开赛赛道]UnserializeOne12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758<?phperror_reporting(0);highlight_file(__FILE__);#Something useful for you : https://zhuanlan.zhihu.com/p/377676274class Start{ public $name; protected $func; public function __destruct()#12当一个对象被销毁时,__destruct() 方法会被调用 { echo "Welcome to NewStarCTF, ".$this->name;#11__toString() 方法会被自动调用 } public ...
XSS漏洞
XSS跨站脚本攻击漏洞一、常见触发标签无过滤情况1.<script><scirpt>alert("xss");</script>
2.<img>当图片加载错误时触发
<img src="x" onerror=alert(1)><img src="1" onerror=eval("alert('xss')")>
还可以改成onmouseover=”alert(1)” onmouseout=”alert(1)”
3.<a>123456<a href="https://www.qq.com">qq</a><a href=javascript:alert('xss')>test</a> 不是触发性的动作需要加前缀javascript:<a href="javascript:a" onm ...
php反序列化
PHP反序列化漏洞一、基础知识php面向对象的基本概念类与对象
12345678910111213class hero{ var $name; #var默认是public public $sex; function(){ echo $this->name; #必须用this访问类内变量 }}$cyj= new hero();$cyj->name='chengyaojin'; #注意不是.访问$cyj->sex='male';$cyj->function();print_r($cyj); ->输出name和sex
public:任何地方调用
protected:外部不允许调用
private:子类、外部不允许调用
php中的继承:class hero2 extends hero{...}
PHP序列化:对象->字符串1234567891011121314151617null -> N;666 -> i: ...
春秋ctf夏季赛wp
春秋ctf夏季赛wpweb1 ctf日记wp-login.php
文件包含漏洞
文件包含一、文件包含漏洞的原理以PHP为例,常用的文件包含函数有以下四种include(),require(),include_once(),require_once()
123<?php include $_GET['test'];?>
include()函数并不在意被包含的文件是什么类型,只要有php代码,都会被解析出来。?test=phpinfo();
因此可以配合文件上传漏洞上传一个图片马,配合文件包含漏洞解析
文件包含不支持通配符
二、本地文件包含漏洞(LFI)1234<?php $file=$_GET['filename']; include($file);?>
直接更改filename可以读取本地文件
123456789Linux/Unix系统敏感文件:/etc/password //账户信息/etc/shadow //账户密码信息/usr/local/app/apache2/conf/httpd.conf //Apache2默认配置文件/usr/local/app/apache2/conf/e ...
sql注入总结
sql注入一.什么是注入所谓SQL注入,就是通过把SQL命令插入到WEB表单提交或输入域名或页面请求的查询字符串,最终到达欺骗服务器执行恶意的SQL命令,从而进一步得到相应的数据信息。通过构造一条精巧的语句,来查询到想要得到的信息。
二.常规注入步骤1.判断注入点类型提交and 1=1和and 1=2,如果两个都能正常显示则为字符型注入,如果1=2无法正常显示则为数字型注入
还有一种判断方法是使用2-1,看页面是否正常显示,数字型可以计算2-1所以会正常显示,字符型会报错(这种方法的优点是绕过对=号的检查)
确定是字符型后需要尝试闭合查询语句,例如),',",可以根据报错语句闭合,然后在最后加上#或–+注释掉之后的语句,正确的闭合方式表现为:加注释之前为错误界面,加注释符之后为正确页面
2.判断列数二分法判断列数,?id=1 group by 5或?id=1 order by 5,如果到某个数字恰好页面能正常显示,那么可以确定列数
3.union联合注入根据2拿到的列数构造查询语句(注:把id改成0、-1)?id=-1 union se ...
ciscn-wp
ciscn writeupwebsimple_php(复现)解法一比赛的时候一直在尝试其他命令,看了wp才发现能用php -r ‘代码’来执行php语句或者系统命令
与此相似的还有php -i可以查看phpinfo等等
但是由于题目过滤了许多关键字,我们可以利用hex2bin转码绕过过滤
hex2bin(‘语句’); 但是由于过滤了引号,使用substr截取一个字符(这里是下划线),剩下的就会被识别为字符串
hex编码 ls / -> 6c73202f
1php -r system(hex2bin(substr(_6c73202f,1)));
命令成功执行
之后找了一圈没发现flag,ps -def指令可以查看进程
ps -def -> _7073202d646566
其中看到了mysql,flag应该在数据库中
直接猜账户root密码为root, -e执行sql语句
12mysql -u root -p'root' -e 'show databases;'cmd=php -r system(hex2bin(su ...
ISCC-wp-dyinglight
ISCC-WP-Dyinglightweb1.还没想好名字的塔防游戏hint1:Owls Weave Wisdom
hint2:Goblins Gather Gold
hint3:Elves Echo Eternity
Mystic Defense War: The Secret of Guardian Towers and Magical Monsters
18=MDWTSGTMMOWWGGGEEE
2.原神启动源代码中的注释,用http://hi.pcmoe.net/index.html解密,得到水克制火,火克制冰,冰克制雷,雷克制草,草克制水
输入正确的元素之后,得到success界面,输入flag得知在flag.txt中
1ISCC{"djkahfakjbnf_32984#@243%"}
SSSCTFwp-Dyinglight
SSSCTF2024 wp -Dyinglightcrypto原神flag{yuanshenqidong} 蒙德文字
reversecheck inida进去就能看到flag
web1.ravenfield
下载了个编码的插件,发现utf-8编码会显示you win,但是源代码中间空了很多点点,把这些点点复制到浏览器,发现了这篇文章
https://blog.csdn.net/qq_38805084/article/details/102682864
0宽字节隐写,https://yuanfux.github.io/zero-width-web/这个网站可以解密,把you win复制进来解密即可
ps:游戏真好玩)
2.weirdbash(复现)dutctf获得一长串提示
12+-!?$%&*+-!?$%&*+-!?$%&*+-!?$%&*+-!?$%&*+-!?$%&*+-!?$%&*+-!?$% ...
php命令执行
PHP命令执行一.命令执行函数介绍system exec passthru shell_exec 反引号 popen proc_open pcntl_exec
了解能否回显,需求的参数
system(string $command,int &$return_var=?)command为执行的命令(必须),return_var用来记录命令执行后返回的状态(可选)
system函数有回显
exec(string $command,array &$output=?,int &$return_var=?)command为执行的命令,单独使用时只有最后一行结果,且不会回显
output:用命令执行的输出填充此数组,每行输出一个元素,用print_r(array)或var_dump输出结果
var返回状态(忽略)
passthru(string $command,int &$return_var)command:执行的命令,var忽略
二进制数据(无关)
直接回显,不需要print_r
shell_exec(string $cmd)
...