男女做暧暧观看免费网站建站平台与自己做网站
张小明 2026/1/9 9:09:29
男女做暧暧观看免费网站,建站平台与自己做网站,汉中专业网站建设推广,网站网站程序架设1.打开是一个欢迎界面 然后点击这个read something会跳转到这个页面 看到这个https://baidu.com#xff0c;知道这里是可以 ssrf的#xff0c;使用file看一下 发现触发了waf#xff0c;使用其他的试一试#xff0c;最后发现 直接加路径也能进行访问 还有一种方法就是使用lo…1.打开是一个欢迎界面然后点击这个read something会跳转到这个页面看到这个https://baidu.com知道这里是可以 ssrf的使用file看一下发现触发了waf使用其他的试一试最后发现 直接加路径也能进行访问还有一种方法就是使用local_file也能进行读取local_file通常指的是本地文件路径看到这个read感觉可能是使用的路由为read那么盲读一下app/app.py这是flask的常用源码路径读取到了源码2.分析代码首先是导入了一些模块re用来进行正则匹配random伪随机数生成器uuid用于获取机器标识uuid.getnode()返回网卡MAC地址urilib用于发送HTTP请求并读取响应用于urlopen这里使用的是python2的urllibpython3的是urllib.request从flask导入Flask(创建应用)、session(Flask session)、request(请求对象)创建Flask应用实例__name__用于模板/静态路径解析使用uuid.getnode()返回一个整数的MAC地址然后用MAC地址初始化随机数生成器再利用random.random()生成一个0~1之间的伪随机小数再乘以233并转换字符串作为flask的secret_key启用falsk的调试模式一个根目录路由定义了一个index函数会将session中的username的值设置为www-data然后返回一个hello world加上一个外链一个/read路由定义了一个read函数然后获取他get传参的url参数的值赋值给url然后使用正则匹配匹配url中是否以file协议或以file开头不区分大小写然后将值赋值给m再使用正则匹配检查url中的flag字段不区分大小写然后将结果赋值给n然后if判断m或者n中有一个为true就返回no hack下面是一个向url发送HTTP请求并读取响应然后将值赋值给res再返回read读取res的值定义了一个/flag路由里面定义了一个flag函数if检查session中的username的值为fuck那么就打开/flag.txt并进行阅读然后使用return返回出来否的话就回显一个没权限3.思路分析首先是看到他这里面有一个secret_key是可以自己构造的结构为用生成的MAC地址初始化随机数生成器再将random.random()生成的0~1的伪随机数小数乘一个233并转换为字符串就是他的secret_key这里MAC地址通常出现在这几个路径下file:///sys/class/net/eth0/addressfile:///sys/class/net/ens33/addressfile:///sys/class/net/enp0s3/addressfile:///sys/class/net/wlan0/address发现为ce:d0:15:29:3e:5c然后按照他里面的生成方法给进行一个伪造secret_key首先就是先random.seed使用这个进行一个伪随机数初始化这里的MAC地址要变成为十六进制然后再利用random.random生成0~1的随机数乘一个233注意这里环境使用的是python2所以运行这个代码的时候要使用python2运行因为python3和python2的生成精度不同生成出来的值也不同python3python2这里使用python2生成的种子值来当成secret_key伪造出密钥了以后就是看需要伪造什么了看到数据包中session是一段以ey开头并且使用点号分为三段那么指定值JWT加密了那么使用这个密钥进行一个解密可以看到成功解出值那么就是可以开始最后的构造了4.开始构造题目要求是username的值为fuck再访问/flag就能得到flag那么进行一个伪造这个时候直接复制上面解密出来的{username: bwww-data}然后将里面的www-data修改为fuck最后将其替换上去再访问/flag得到flag5.知识点从这题中又学到了一个local_file也能进行一个ssrf的文件读取local_filelocal_file通常指的是本地文件路径他在ssrf中也能进行一个伪造请求的方法用以读取本地文件的路径还有就是python2的发送HTTP请求并读取响应是urllibpython3的发送HTTP请求并读取响应是urllib.requestJWT伪造JWT他是由三部分组成分别是头部、载体、签名通常用于身份验证也可以用于交换信息参考文章https://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.htmlhttps://www.cnblogs.com/ityouknow/p/10856177.htmlcookie和session