大学开学了,信息安全专业,已经咕咕咕到现在了,军训实在是太累,以后一定狠狠更新。
首先,在代码审计之前,要聊聊如何才能“做到”代码审计呢?必须要知道源码。
但是,你在打靶机或者真实安全测试的时候网上有很多直接的利用脚本,在此时代码审计肯定就没啥大用了,但是请看看这个脚本到底是啥意思,做了啥,最不济扔给gpt分析一下,不要直接用,要学习写脚本的逻辑。
一、找开源
那么源码能从那里找到?最简单的当然是它开源了。开源自然就可以找到编译前的代码。这里的代码审计是软件本身的代码审计,审计的是程序本身底层设计上的漏洞。可以针对该漏洞进行一些操作,再次我先讲一下如何找开源吧。
github都知道吧?是全球最大的开源平台。你可以根据页面上的一些关键字去找,比如你看到了页面上有“wordpress”等类似于服务程序的名称,那么自然而然的就可以去在github上,或者是直接在搜索引擎,或者是一些破解论坛上去寻找源码、破解后未加锁的程序。或者直接通过相关版本信息等等去获得对应的攻击脚本。
CTF竞赛对此也会有相关的考察,如果你在一个CTF试题上看到一些很奇怪独特的文字,你当然可以放在搜索引擎里,也许你会有一些意外的收获。
.git文件也是我们需要注意的,如果是通过git部署的程序,可能会有.git文件,里面存放,ctf可能使用。
关于找.git的工具,githack实在是年久失修了,上个月在我的新kali机子上就没能使用成功,不知道因为什么环境问题,你们可以在自己的机器上使用一下,看看能不能用。
在这里,我简单说一下.git工程。
你可以看到初始化本地git仓库后就会有.git隐藏文件,删除 .git 文件夹,就会把这个git仓库删除,文件夹变成非git控制的文件夹。
可以设置一下配置文件,然后加 -global就是全局设置。
ssh配置的一些问题
$ ssh-keygen --help
ssh-keygen:未知选项 -- -
用法:ssh-keygen [-q] [-a 轮次] [-b 位] [-C 注释] [-f 输出密钥文件]
[-m 格式] [-N 新密码] [-O 选项]
[-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]
[-w 提供商] [-Z 密码]
ssh-keygen -p [-a 轮次] [-f 密钥文件] [-m 格式] [-N 新密码]
[-P 旧密码] [-Z 密码]
ssh-keygen -i [-f 输入密钥文件] [-m 密钥格式]
ssh-keygen -e [-f 输入密钥文件] [-m 密钥格式]
ssh-keygen -y [-f 输入密钥文件]
ssh-keygen -c [-a 轮次] [-C 注释] [-f 密钥文件] [-P 密码]
ssh-keygen -l [-v] [-E 指纹哈希] [-f 输入密钥文件]
ssh-keygen -B [-f 输入密钥文件]
ssh-keygen -D pkcs11
ssh-keygen -F 主机名 [-lv] [-f 已知主机文件]
ssh-keygen -H [-f 已知主机文件]
ssh-keygen -K [-a 轮次] [-w 提供商]
ssh-keygen -R 主机名 [-f 已知主机文件]
ssh-keygen -r 主机名 [-g] [-f 输入密钥文件]
ssh-keygen -M 生成 [-O 选项] 输出文件
ssh-keygen -M 屏幕 [-f 输入文件] [-O 选项] 输出文件
ssh-keygen -I 证书身份 -s ca_key [-hU] [-D pkcs11 提供商]
[-n 主体] [-O 选项] [-V 有效性间隔]
[-z 序列号] 文件 ...
ssh-keygen -L [-f 输入密钥文件]
ssh-keygen -A [-a 轮次] [-f 前缀路径]
ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
文件 ...
ssh-keygen -Q [-l] -f krl_file [文件 ...]
ssh-keygen -Y find-principals -s signature_file -f allowed_signers_file
ssh-keygen -Y match-principals -I signer_identity -f allowed_signers_file
ssh-keygen -Y check-novalidate -n namespace -s signature_file
ssh-keygen -Y sign -f key_file -n namespace file [-O 选项] ...
ssh-keygen -Y verify -f allowed_signers_file -I signer_identity
-n namespace -s signature_file [-r krl_file] [-O 选项]
以上摘自Google翻译,比较准确了。
(上面的就不能截全图了,在实体机上操作的,有危险,请理解)
在相应的文件夹里可以找到相应的公私钥。
把.pub文件复制一下,然后在github上setting里面找到ssh,粘贴进去就行了。
我在这里主要就是提一下相应的操作,只是为了介绍一下.git是如何形成的和简单提了提git关联,至于远程仓库的拉取和上传就很简单,随便找个教程就行了...
这里随便建个文件夹弄点文件。
git add .
git commit -ma "init"
init
commit一下,然后看一下.git内容变化。
Git(三).git 文件夹详解_.git文件-CSDN博客
我这里直接扔别人文章了,可以看到其中的变化。
关于.git泄露怎么用,我会出专题的...(你要是实在想知道就去找找看,网上大概有文章,货比三家)
与之类似的是.svn文件泄露,可以用相关的工具进行探测。
然后是备份文件的泄露。这个其实在网络安全的应用更加广泛。一个网站为了避免因为误操作和一些人为因素造成的重大破坏,必然会对一些进程和数据进行备份处理,而如果让我们获得了这些备份,可能就能够获得一些对我们有利的信息。
.bak、.old、.~、.backup这些都是一些常用的后缀,或者直接就是一些压缩版格式,比如现在有一份数据的备份信息,可以命名为work.zip.bak,我们也可以上一级的后缀名称知道这是通过zip压缩后的bak文件。
还需要注意一些可能会涉及敏感信息的文件夹、文件等,时时刻刻注意相关内容才能让我们如鱼得水。
哦,对了,sonar还是挺好用的,建议各位学一下,社区版免费,其实大部分软件很多人连社区版的功能都难以发挥出来,不要老是在网上寻找软件学习版,先整一个正版看看学学。