首页
关于
统计
友链
推荐
百度一下
腾讯视频
幻鹤主页
Search
1
使用AheadLib工具进行劫持DLL操作
2,832 阅读
2
数据库的关联查询
1,867 阅读
3
遇到闪照想保存?教你骚操作保存闪照
1,833 阅读
4
教大家“调教”应急食品
1,759 阅读
5
MySql的增删改查的练习
1,612 阅读
技术分享
Python
PHP
其他
网络安全
Java
JavaScript
生活趣闻
语言的魅力
作者的牢骚
登录
Search
标签搜索
mysql
kali
docker
dll
入门
MSF
网络安全
Huan-He
累计撰写
23
篇文章
累计收到
65
条评论
首页
栏目
技术分享
Python
PHP
其他
网络安全
Java
JavaScript
生活趣闻
语言的魅力
作者的牢骚
页面
关于
统计
友链
推荐
百度一下
腾讯视频
幻鹤主页
搜索到
15
篇与
其他
的结果
2024-09-03
浏览器 qq的一键登录
网页如何在浏览器获取设备登录的qq?在登录qq邮箱的时候我就发现了一个很奇怪的现象,在登录的时候,浏览器会自动获取到我设备登录的qq号。这是怎么做到的呢通过浏览器控制台,发现请求的https://localhost.ptlogin2.qq.com:4301/pt_get_uins这个url,并且这个url是解析到本地127.0.0.1的当你登录qq后会在本地端口开放一个接口,浏览器请求会直接请求本地就可以拿到你登录的qq。也就是说我模拟这个请求,我就可以拿到你qq!但是后面对这个尝试后发现必须设置Referer到https://xui.ptlogin2.qq.com/才行,所以浏览器中直接设置js肯定是不行的就用php代码模拟一遍$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://localhost.ptlogin2.qq.com:4301/pt_get_uins?callback=ptui_getuins_CB&pt_local_tk=-1966578495"); curl_setopt($ch, CURLOPT_REFERER, "https://xui.ptlogin2.qq.com/"); curl_setopt($ch, CURLOPT_COOKIE, "pt_local_token=-1966578495; "); // 禁用SSL证书验证 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } else { echo $response; // 输出响应内容 } curl_close($ch);这些参数都是必须要带的,pt_local_tk参数只用和token一样就行了请求后是可以正确拿到qq的!结语当然这只是一个思路,限制也很多。具体怎么玩,就看你的想法了。
2024年09月03日
649 阅读
0 评论
0 点赞
2024-05-16
【job】简单记一下-安卓自动化
最近在做安卓自动化就是利用无障碍模式,通过脚本来操作手机我实际使用的是小红书来做搜索关键词@RequiresApi(Build.VERSION_CODES.N) suspend fun actAutoRedBook(act: ComponentActivity) { setScreenSize(100, 100) val keyString = listOf("自动化", "关键词2", "小红书2") waitBaseAccessibility(60000) log("打开小红书") if (!openApp(act, "com.xingin.xhs")) return log("打开搜索") val searchElementFound = SF.desc("搜索").clickable().require(2000) // 寻找搜索按钮 if (!searchElementFound.globalClick()) { log("点击搜索按钮失败", 3) return } // 寻找编辑框 // if (keyString.size < keyInterval){ // log("搜索完所有关键词") // return // } searchInput(keyString) getListPost(act) log("第二列") getListPost(act) }大概就类似的一系列模拟,然后点击详情,复制链接,读取剪切板达到目的但是后面发现scheme的东西,发现用起来太方便了,所以就直接用scheme来打开链接了基本上面的代码都可以简化成这样suspend fun actAutoRedBook(act: ComponentActivity) { setScreenSize(100, 100) val keyString = listOf("自动化", "关键词2", "小红书2") waitBaseAccessibility(60000) log("使用Scheme搜索关键词: ${keyString[keyInterval]}") openScheme(RedBook.xhsSearchWithKeyword(keyString[keyInterval])) getListPost(act) log("第二列") getListPost(act) }在自动化的过程中我还发现了给有取的现象我手机是链接的电脑的,当点击小红书的分享后,发现手机的剪切板和电脑的剪切板不一样?也不知道是啥原因当然我也把这个开源了,有兴趣的自取哦: github
2024年05月16日
476 阅读
0 评论
1 点赞
2023-03-04
Docker的进阶教程
容器卷容器卷是什么docker的理念回顾将应用和环境打包成一个镜像!就是把docker中mysql的文件同步到本地数据库中,实现同步使用数据卷方式一:使用命令来挂载 -vdocker run -it -v 主机目录:容器目录 # 实例一下 # 运行容器 docker run -it -v /home/ceshi:/home centos /bin/bash #此时本机home/ceshi目录中已经有文件了 #可以试着把容器停止 exit #然后查看容器还在不 docker ps #发现没有容器了 #在宿主机上添加文件,然后在启动容器 docker ps -a #拿到容器id docker start 容器id #启动容器 docker attach 容器id #进入容器正在运行的命令行 #然后就可以看到home目录有文件了安装MySql#获取镜像 docker pull mysql:5.7 #启动容器 docker run -d -p 3303:3306 -v /home/mysql/conf:/etc/mysql/conf -v /hom/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7 #上面的123456是mysql的密码然后就可以连接端口,且删除mysql挂在的数据卷存在本地,实现持久化、匿名挂载卷#匿名挂载 docker run -d -P --name nginx01 -v /ect/nginx nginx #具名挂载 docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx nginx #查看所有volume的情况 docker volume ls ##==> DRIVER VOLUME NAME local 6b293610ad7957745378480c914af2b75107b84efdf3ff45e6db8df6c5808ece local juming-nginx # 查看他的信息 docker volume inspect juming-nginx #==> [ { "CreatedAt": "2023-03-03T20:49:57+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data", "Name": "juming-nginx", "Options": null, "Scope": "local" } ]所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxx大多数都是使用具名挂在-v 容器内路径 #匿名挂载 -v 卷名:容器内路径 #具名挂载 -v /宿主机路径:容器内路径 #指定挂载拓展#通过内路径ro或者rw改变读写权限(只读,可读可写) docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx:ro nginx docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx:rw nginx #ro 只能从外部改变(宿主机)方式二容器数据卷Dockerfile就是来构建docker的镜像文件#通过这个脚本生成镜像 FROM centos VOLUME ["volme01","volme02"] CMD echo "---end---" CMD /bin/bash使用docker来执行这个脚本docker buid -f dockerfile01 -t huanhe/centes .这种方法会在启动自己容器里挂载两个目录可以让多个mysql同步数据docker run -it --name docker02 --volumes-from docker01 huanhe/centos:1.0 # 让docker02继承docker01的挂载dorckerfile基础知识每个保留关键字(指令)都是必须是大写字母执行从上到下顺序执行表示注释每一个指令都会创建提交一个新的镜像层,并提交!docker是面向开发的DockerFile:构建文件DockerImages:构建镜像Docker容器:提供运行容器DockerFile指令FROM #基础镜像,一切在这里开始 MAINTAINER #镜像所有者,姓名+邮箱 RUN # 镜像构建时需要的命令 ADD # 步骤,相当于加入tomcat压缩包 EORKDIR # 镜像目录的工作目录 VOLUME # 挂载卷 EXPOST # 暴露端口配置 CMD # 指定容器启动时执行的命令,只执行最后一条 ENTRYPOINT # 指定容器启动时执行的命令,可追加 ONBUILD # 当构建镜被继承则会执行 COPY # 类似ADD,将文件拷贝到镜像中 ENV # 构建的时候设置环境变量创建一个自己的centosFROM centos:centos7 MAINTAINER huanhe<admin@huanhe.xyz> ENV MYPATH /usr/local WORKDIR $MYPATH RUN yum -y install vim RUN yum -y install net-tools EXPOSE 80 CMD echo $MYPATH CMD echo "----end-----" CMD /bin/bash开始构建docker build -f 文件名 -t mycentos:0.1 . # 运行 docker run -it mycentos:0.1 #在进入后 pwd #发现在自己设置的工作目录里且可以使用了查看docker容器的历史docker history 容器id发布自己的镜像DockerHub地址: https://hub.docker.com/登录自己的docker login -u huanhe输入密码后就登录成功,然后开始提交# 需要按照官方命名才可以push # 改名 docker tag 容器id huanhe/xxx:1.0 #开始push docker push huanhe/xxx:1.0发布到阿里云# 登录 $ docker login --username=xxxx registry.cn-chengdu.aliyuncs.com # 改标签 $ docker tag [ImageId] registry.cn-chengdu.aliyuncs.com/huanhe/demo:[镜像版本号] # 推送 $ docker push registry.cn-chengdu.aliyuncs.com/huanhe/demo:[镜像版本号]总的来说
2023年03月04日
1,103 阅读
0 评论
0 点赞
2023-03-03
Dorcker镜像部署入门
Docker 练手实例nginx练习先搜索nginxdocker search nginx启动nginxdocker pull nginx #下载镜像 docker run -d --name nginx01 -p 3300:80 nginx #启动镜像并将80端口映射到公网上3300 # -d:后台运行 --name:给容器命名 -p宿主机:容器内端口端口暴露的概念进入容器docker exec -it ngin01 /bin/bashtomcat 练习直接上代码#官方的使用 docker run -it --rm tomcat:9.0 #我们之前的启动都是后台,停止了容器之后,容器还是可以查到 docker run -it --rm,一般用来测试,用完就删除 #我们还是慢慢来 #下载在启动 docker pull tomcat:9.0 #看看镜像是不是在 docker images #启动 docker run -d -p 3301:8080 --name tomcat01 tomcat:90部署es+kibana# es 暴露的端口很多 # es 十分耗内存 # es 的数据一般需要放置到安全目录 docker run -d --name es1 -p 3302:9200 -p 3303:9300 -e "discovery.type=single-node" elasticsearch:7.6.2 #很占内存,需要限制内存 docker run -d --name es1 -p 3302:9200 -p 3303:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2 #查看docker stats占用两容器之间的通信commit镜像层镜像层不可改变,上面的容器层才是用户改变的,就像tomcat是镜像层,而里面运行的项目源码就是容器层docker commit 提交容器成为一个新的副本 #命令和git类似 docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[tag] #相当于一个快照
2023年03月03日
811 阅读
0 评论
0 点赞
2023-03-03
Docker的基础入门
Docker常用命令帮助命令docker version # 显示版本信息 docker info #显示信息 docker 命令 --help #万能命令镜像命令docker images #显示所有镜像docker images REPOSITORY TAG IMAGE ID CREATED SIZE #解释 REPOSITORY 仓库源 TAG 镜像的标签 IMAGE ID 镜像的id CREATED 镜像的创建时间 SIZE 镜像的大小 # 可选项 Options: -a, --all #列出所有镜像 -q, --quiet #只显示id docker docker search 搜索镜像[root@schuanhe ~]# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 13878 [OK] mariadb MariaDB Server is a high performing open sou… 5291 [OK] # 可选项,通过收藏来过滤 --filter=starts=3000 #搜索出来的是收藏大于3000的 docker pull 下载镜像docker pull:5.7 #可以加版本号docker rm 删除docker rmi -f 镜像id #通过id删除 docker rmi -f 镜像id id2 id3 #通过id多个删除 docker rmi -f $(docker images -aq) #删除全部容器命令说明∶我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习docker pull centos新建容器并启动docker run [可选参数] images # 参数说明 --name="Name" 容器名字 tomcat01 tomcat02 -d 后台运行方式 -it 使用交互方式运行,进入容器查看内容 -p 指定容器的端口 -p 8080:8080 -p 主机端口:容器端口(常用 ) -p 容器端口 -p 随机指定端口 # 启动并进入容器 [root@schuanhe ~]# docker run -it centos /bin/bash [root@04df212b39ac /]# #退出命令 exit 列出所有运行的容器docker ps #列出在运行的容器 -a #列出在运行的容器+历史运行过的容器 -n=? #显示最近的容器 -q #只显示id退出容器 exit #直接退出并停止 Ctrl + P + Q #容器不停止退出删除容器docker rm 容器id #删除指定容器,不能删除正在运行的,强制删除就是rm -f docker rm -f $(docker ps -aq) #删除全部容器 docker ps -a -q|xargs docker rm #删除全部容器启动和停止容器docker start 容器id #启动容器 docker restart 容器id #重启容器 docker stop 容器id #停止正在运行的容器 docker kill 容器id #强制停止容器常用的其他命令后台启动容器# 命令 docker run -d 镜像名 docker run -d centos #问题docker 发现centos停止了 #常见的坑:docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止 # nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了查看日志命令docker logs #发现没有日志 # 自己一段shell脚本 docker run -d centos /bin/sh -c "while true;do echo huanhe;sleep 1;done" #大概就是循环输出huanhe,一秒一次 #现在查看日志 docker logs -tf --tail 10 8e387da387c5 #显示日志 -t #带上时间戳 -f #显示行数 --tail number #要显示的日志条数查看容器中的进程信息# 命令 docker top 容器id docker top 8e387da387c5 UID PID PPID C STIME TTY TIME CMD root 1015 996 0 16:50 ? 00:00:00 /bin/sh -c while true;do echo huanhe;sleep 1;done root 4006 1015 0 17:00 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1查看镜像的源数据#命令 docker inspect 容器id docker inspect 8e387da387c5 [ { "Id": "8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3", "Created": "2023-03-03T08:50:25.340196124Z", "Path": "/bin/sh", "Args": [ "-c", "while true;do echo huanhe;sleep 1;done" ], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 1015, "ExitCode": 0, "Error": "", "StartedAt": "2023-03-03T08:50:25.604270298Z", "FinishedAt": "0001-01-01T00:00:00Z" }, "Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6", "ResolvConfPath": "/var/lib/docker/containers/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3/resolv.conf", "HostnamePath": "/var/lib/docker/containers/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3/hostname", "HostsPath": "/var/lib/docker/containers/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3/hosts", "LogPath": "/var/lib/docker/containers/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3-json.log", "Name": "/peaceful_margulis", "RestartCount": 0, "Driver": "overlay2", "Platform": "linux", "MountLabel": "", "ProcessLabel": "", "AppArmorProfile": "", "ExecIDs": null, "HostConfig": { "Binds": null, "ContainerIDFile": "", "LogConfig": { "Type": "json-file", "Config": {} }, "NetworkMode": "default", "PortBindings": {}, "RestartPolicy": { "Name": "no", "MaximumRetryCount": 0 }, "AutoRemove": false, "VolumeDriver": "", "VolumesFrom": null, "CapAdd": null, "CapDrop": null, "CgroupnsMode": "host", "Dns": [], "DnsOptions": [], "DnsSearch": [], "ExtraHosts": null, "GroupAdd": null, "IpcMode": "private", "Cgroup": "", "Links": null, "OomScoreAdj": 0, "PidMode": "", "Privileged": false, "PublishAllPorts": false, "ReadonlyRootfs": false, "SecurityOpt": null, "UTSMode": "", "UsernsMode": "", "ShmSize": 67108864, "Runtime": "runc", "ConsoleSize": [ 0, 0 ], "Isolation": "", "CpuShares": 0, "Memory": 0, "NanoCpus": 0, "CgroupParent": "", "BlkioWeight": 0, "BlkioWeightDevice": [], "BlkioDeviceReadBps": null, "BlkioDeviceWriteBps": null, "BlkioDeviceReadIOps": null, "BlkioDeviceWriteIOps": null, "CpuPeriod": 0, "CpuQuota": 0, "CpuRealtimePeriod": 0, "CpuRealtimeRuntime": 0, "CpusetCpus": "", "CpusetMems": "", "Devices": [], "DeviceCgroupRules": null, "DeviceRequests": null, "KernelMemory": 0, "KernelMemoryTCP": 0, "MemoryReservation": 0, "MemorySwap": 0, "MemorySwappiness": null, "OomKillDisable": false, "PidsLimit": null, "Ulimits": null, "CpuCount": 0, "CpuPercent": 0, "IOMaximumIOps": 0, "IOMaximumBandwidth": 0, "MaskedPaths": [ "/proc/asound", "/proc/acpi", "/proc/kcore", "/proc/keys", "/proc/latency_stats", "/proc/timer_list", "/proc/timer_stats", "/proc/sched_debug", "/proc/scsi", "/sys/firmware" ], "ReadonlyPaths": [ "/proc/bus", "/proc/fs", "/proc/irq", "/proc/sys", "/proc/sysrq-trigger" ] }, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/7aa21d897e499a01fbf12f06f086869354758dc5388f5fad9bf299869e8bd5a9-init/diff:/var/lib/docker/overlay2/00b5c705910cae599a2feaa2e1cf732e6dd237f5f213bc959b1931a223432d46/diff", "MergedDir": "/var/lib/docker/overlay2/7aa21d897e499a01fbf12f06f086869354758dc5388f5fad9bf299869e8bd5a9/merged", "UpperDir": "/var/lib/docker/overlay2/7aa21d897e499a01fbf12f06f086869354758dc5388f5fad9bf299869e8bd5a9/diff", "WorkDir": "/var/lib/docker/overlay2/7aa21d897e499a01fbf12f06f086869354758dc5388f5fad9bf299869e8bd5a9/work" }, "Name": "overlay2" }, "Mounts": [], "Config": { "Hostname": "8e387da387c5", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/sh", "-c", "while true;do echo huanhe;sleep 1;done" ], "Image": "centos", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": { "org.label-schema.build-date": "20210915", "org.label-schema.license": "GPLv2", "org.label-schema.name": "CentOS Base Image", "org.label-schema.schema-version": "1.0", "org.label-schema.vendor": "CentOS" } }, "NetworkSettings": { "Bridge": "", "SandboxID": "301bbec083d20ed5c170d472a5dc35048dd597415f24585a52facca836e0debb", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": {}, "SandboxKey": "/var/run/docker/netns/301bbec083d2", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "d7791514fc4a3010e2041b4c2b69c689a824cdda9aa62549cedb2e9f9019dcae", "Gateway": "172.17.0.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "MacAddress": "02:42:ac:11:00:02", "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "02e2b33f8b5771ae41374ca58494b286dd5c9c97e2cb6163c96367f2c22c714e", "EndpointID": "d7791514fc4a3010e2041b4c2b69c689a824cdda9aa62549cedb2e9f9019dcae", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:02", "DriverOpts": null } } } } ]进入当前正在运行的容器#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置 #命令 docker exec -it 容器id bashShell #测试 docker exec -it 8e387da387c5 /bin/bash [root@schuanhe ~]# docker exec -it 8e387da387c5 /bin/bash [root@8e387da387c5 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 08:50 ? 00:00:00 /bin/sh -c while true;do echo huanhe;sleep 1;done root 1180 0 0 09:09 pts/0 00:00:00 /bin/bash root 1213 1 0 09:10 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1 root 1214 1180 0 09:10 pts/0 00:00:00 ps -ef # 方式二 docker attach 容器id #方式一 是开启一个新的终端 #方式二 是进入正在执行的终端把容器内文件拷贝到主机上docker cp 容器id:容器内路径 目的地址路径常用命令总结 attach #当前she17 下attach 连接指定运行镜像 build #通过Dockerfile定制镜像 commit #提交当前容器为新的镜像 cp #从容器中拷贝指定文件或者目录到宿主机中 create #创建一个新的容器,同run,但不启动容器 diff #查看docker容器变化 events #从docker服务获取容器实时事件 exec #在已存在的容器上运行命令 export #导出容器的内容流作为一个 tar归档文件[对应import] history #展示一个镜像形成历史 images #列出系统当前镜像 import #从tar包中的内容创建一个新的文件系统映像[对应export] info #显示系统相关信息 inspect #查看容器详细信.息. kill #kill指定docker容器 load #从一个tar 包中加载一个镜像[对应save] login #注册或者登陆一个docker源服务器 logout #从当前Docker registry 退出 logs #输出当前容器日志信息 pause #查看映射端口对应的容器内部源端口 port #暂停容器 ps #列出容器列表 pull #从docker镜像源服务器拉取指定镜像或者库镜像 push #推送指定镜像或者库镜像至docker源服务器 rename Rename a container restart #重启运行的容器 rm #移除一个或者多个容器 rmi #移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或-f强制册除] run #创建一个新的容器并运行一个命令 save #保存一个镜像为一个 tar包[对应1oad] search #在docker hub中搜索镜像 start #启动容器 stats Display a live stream of container(s) resource usage statistics stop #停止容器 tag #给源中镜像打标签 top #查看容器中运行的进程信息 unpause #取消暂停容器 update Update configuration of one or more containers version #查看docker版本号 wait #截取容器停止时的退出状态值
2023年03月03日
864 阅读
0 评论
0 点赞
1
2
3