记一次Flask后端被渗透的经历
0x00写在前面 2021-11-04中午,在flask文档的帮助下,我成功在一小时内搭建起一个带有沙盒的可以执行部分python语句的后端脚本,并第一次将项目部署在docker上。NekoBot新功能+1,在某十几个群开放了此功能,并特别标注为菜单的第-1项,开始期待几个群聊里做渗透的师傅们对其进行攻击。 接下来的20多天里,如此明显的功能几乎没有人使用,这些人几乎全他妈的都在用Bot在看色图、犯病。不过好在有些人注意到了,其中有几位也是打CTF的师傅,可惜他们几乎都在瞎搞()这期间有个南信大的朋友,对bot进行了一些列攻击,可惜这些方式都在我的预判之内,并没成功。但是单纯的部分绕过都做到了,因为真的很简单() 2021-11-27凌晨,在持续几个小时的尝试下,这个后端被巨佬plusls(我也是从前小绿草的腿腿acdxvfsvd大仙贝那得知这位巨佬的)读取了源码,读取到了环境信息,最终利用flask的拒绝服务打了下来(我超我怎么不知道flask还有这个后门)。并在几个小时后发现了最后某几个关键字的绕过方法,基本就能get shell了。 在写waf的时候我预先留了个open...
Selenium爬虫入门
0x00写在前面曾经我以为爬虫只要学会get和post就行了 直到遇上了某些不分离的js原生网页 最后,是Selenium拯救了我 0x01环境搭建安装selenium模块这里是使用python里的selenium模块;java的话,也有selenium的jar包 1pip install -U selenium 我用的是PyCharm,可以直接在里面的包管理工具添加这个包 安装浏览器安装一款浏览器(谷歌,火狐,IE),selenium是基于浏览器运作的,想要selenium能驱动浏览器,必须要安装浏览器驱动,将驱动放到python的安装根目录下即可 此处以谷歌浏览器为例:谷歌驱动(chromedriver)下载地址:http://npm.taobao.org/mirrors/chromedriver 0x02使用123456789101112131415from selenium import webdriver #引用seleniumdriver=webdriver.Chrome() #启动谷歌浏览器driver.get("http://www.ba...
Docker+Flask构建后端的踩坑记录
今天第一次尝试用flask构建自己的后端项目,其实一切都挺顺利的。直到部署这个环节,因为我对于Flask和Docker不了解,踩了不少坑。 docker这个东西,对于我这个初学者来说,dockerfile是好文明,但是docker本身不是。 在一开始,我总是尝试pull ubuntu镜像,然后再dockerfile里面写上apt-get install和pip,其实何必呢,完全就有官方的python环境镜像。而且,手动更改系统镜像,不一定能达到效果,就好比今天Python环境搞了半天,发现跑不起来,因为期间的软链接创建不成功,无法执行python app.py这个命令(但是它自带的python3没有问题,但是我要的是python2) 写了个自动搭建dockerfile,仅供参考 1234567891011121314151617181920212223//FlaskApp // ├── requirements.txt// ├── Dockerfile// └── app// └── app.py// └── <other ...
Flask的食用方法
0x00写在前面 一直觉得python写后端是件很方便的事,所以我打算整一个Flask的学习 0x01PyCharm导入环境 File-Settings-Project Interpreter,如下图所示: 添加Flask server: 0x02Hello,Flask! 新建一个app.py,什么名字都行,记住不要Flask,会冲突 123456789from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello,Flask!'if __name__ == '__main__': app.run() 我们点击运行,即终端输出: 打开网址:
Nekobot开发心得:Silk4j食用笔记
0x00写在前面 在进行mirai机器人Nekobot的开发过程中,在论坛中发现了大佬写的silk4j–JVM的语音编码组件,觉得用起来挺不错的,于是去对应的仓库进行了一个习的学,感觉收获挺大的 仓库链接奉上:https://github.com/mzdluo123/silk4j 0x01导入依赖 我是kotlin编译的,需要在你的build.gradle.kts里面加上一些东西 12345678910111213// 要使用maven仓库导入,需要先为你的账号生成一个访问token才能正常拉取repositories { maven { url 'https://maven.pkg.github.com/mzdluo123/silk4j' credentials { username = '你的用户名' password = '你的token' } }}dependenci...
Ubuntu18以上系统64位的glibc的payload调用system函数时,所需注意的堆栈平衡问题
0x00写在前面 在Ubuntu18以上的版本,64位的程序若包含了system(“/bin/sh”),就需要考虑堆栈平衡。因为在Ubuntu18下system调用时要求地址和16字节对齐,如果没有栈对齐的话,程序就直接crash了。之前咱做过好几道靶机环境是Ubuntu18的pwn题,本地打得通,但是远程打不通,很令人费解;看大佬们的博客和WP,却只知道Ubuntu18必须得考虑栈对齐。每次都是到最后一步看到远程靶机打不通显示EOF,今天参考了几篇博客想解决这个问题。 这是之前出现栈对齐问题的题,当时都是一笔带过,搞得不明不白的,好在今天应该全都搞懂了(大概) http://101.35.52.235/2021/04/27/pwn刷题笔记-ciscn\_2019\_c\_1/ 0x01原因 栈的字节对齐,实际是指栈顶指针必须是16字节的整数倍。栈对齐使得在尽可能少的内存访问周期内读取数据,不对齐堆栈指针可能导致严重的性能下降。 但是实际上,即使数据没有对齐,我们的程序也是可以执行的,只是效率有点低而已,但是某些型号的Intel和AMD处理器,在执行某些实现多媒体操作的SSE指...
Nekobot开发心得
0x00写在前面 开一个帖,记录一下Nekobot的开发心得吧(主要是自己认为比较重要的某些功能的代码实现方法,写给自己,以免忘记) 不过,如果笔记里的这些内容对你有所帮助,那就更好了2333. 0x01通过Get方式请求来获取网页源码 12345678910fun httpget(url: String): String? { val client = OkHttpClient() val request = Request.Builder().get() .url(url) .build() val call = client.newCall(request) val response = call.execute() val HTML = response.body?.string() return HTML } 肯定要有的,不然网页api以及爬虫都做不了了 0x02读取本地文件夹的文件名 12345678fun get...
右键菜单,用VSCode打开文件和文件夹
由于之前在安装VSCODE的时候,没注意详细阅读提示,而且第一次安装比较随意,只是带着想试一下VSCODE才安装的,所以安装的时候漏了勾选open with code这个非常好用的功能! 那么我们应该怎么解决这个问题呢??? 看了看网上的方法,分为两种: 重装VSCODE,重装大法好啊有没有?(不,重装了好多插件要重新装很麻烦的) 修改注册表(一点都不难,但是要仔细一点) 重装我就不讲了,谁都会的了吧? 那么我来讲一下修改注册表 首先新建一个文本文件。在文本文件中输入以下代码修改注册表,这里要注意一下,里面的路径要修改为自己电脑里VSCODE的绝对路径,而且注意路径的书写,因为在字符串中,所以注意 \ 的转义 1234567891011121314151617181920212223242526Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\VSCode]@="Open with Code""Icon"="C:\\Users\\picpo\\App...
树莓派搭建Mirai QQ机器人
0x00写在前面 一直以来,我都有一个搭建qq机器人的想法。可惜酷Q早已被腾讯橄榄,但好在还有Mirai这个框架。在翻出我用了五年的树莓派后,我打算在上面自己搭建一个qq机器人,以后或许还会写一写插件啥的( 本文可能会时不时偶尔更新一下,做到哪步是哪步(咕咕咕预订 项目地址:https://github.com/mamoe/mirai 0x01下载Mirai控制台 https://github.com/mamoe/mirai/blob/dev/docs/UserManual.md 因为树莓派是arm架构的,所以我选择了arm的版本 建立文件夹,进入,并chmod一下 12345pi@raspberrypi:~/mirai $ lsmcl-installer-72b890d-linux-armpi@raspberrypi:~/mirai $ sudo chmod +x ./mcl-installer-72b890d-linux-armpi@raspberrypi:~/mirai $ lsmcl-installer-72b890d-linux-arm 然后无脑回车就是了 可以...
解决Gravatar头像被墙的问题
2月27日凌晨,我像往常一样打开了自己的博客,来到了留言板,却发现头像无法加载出来。 原先我以为只是我的网络问题,可没想到gravatar官网都打不开了,这时我意识到不太对劲了,于是打开测速网: 我能说什么呢?反正当时我人麻了😅 当时也是事发突然,本来也没几个玩wp的朋友,所以当时没有解决的方法。今天尝试百度了一下gravatar,时间限定这一个月,查到了这篇博客,完美解决Gravatar头像被墙 抱着尝试的心态试了一下最后一个方法,下载了个WP-China-Yes插件,安装。 我○,头像又出现了!!!!!!!!!!









