1.网络安全工程师要学些什么?
2.2.0版UT怎么看IP地址
3.php代码审计学习之函数缺陷
4.网络安全之文件包含漏洞总结
5.CTF篇(攻防世界)
6.ç½ç»å®å
¨ç¥è¯å¹è®å
容
网络安全工程师要学些什么?
网络安全工程师需要学服务漏洞扫描、题目题目程序漏洞分析检测、源码权限管理、题目题目入侵和攻击分析追踪、源码网站渗透、题目题目病毒木马防范、源码t 1源码计算机语言等内容,题目题目还需要懂得网络安全产品的源码配置和使用。
网络安全工程师的题目题目工作职责:
一、主持项目网络安全产品的源码需求分析、项目可行性分析、题目题目技术评测、源码方案规划和搭建,题目题目提供相关技术支持;
二、源码设计满足顾客和网络安全性要求的题目题目网络安全解决方案;
三、通过数据分析和其他相关工具,排查解决项目实施过程中的复杂网络故障问题;
四、根据公司流程,规范化的进行项目实施并编写输出实施报告;
五、处理和解决客户的疑问与困难,做好客户的支持与服务工作;
六、其他专项或上级领导安排或支撑工作。
一般情况下,企业招聘网络安全工程师,要求应聘者具备网络安全通信协议、系统漏洞、恶意代码检测与分析、安全攻防、信息安全技术及产品等方面的理论基础和实践经验,同时具有较强的沟通协作能力。 感兴趣的话点击此处,免费学习一下
想了解更多有关网络安全工程师的相关信息,推荐咨询达内教育。达内教育已从事年IT技术培训,累计培养万学员,并且独创TTS8.0教学系统,1v1督学,跟踪式学习,有疑问随时沟通。该机构大课程体系紧跟企业需求,企业级项目,课程穿插大厂真实项目讲解,对标企业人才标准,制定专业学习计划,囊括主流热点技术,助力学生更好的学习。
2.0版UT怎么看IP地址
可能不能查看吧
UT服务器架设指南
做服务器前先到:
/...atedserver.php
下载服务器版UT,(v, Windows: MB | Linux: MB)安装需要M硬盘空间。
/ut...rver/cdkey.php
申请服务器专用CD-KEY
下载服务器安装文件后:
linux用户:新建一个用户帐号专门用来运行服务器,用这个用户登录,运行utlnxded.sh.bin文件。跟具屏幕提示继续。
windows用户:把zip文件解压缩到硬盘中,没有安装程序,解开来就行了。
在配置服务器前先下载最新升级补丁,给服务器程序升级。
再下载evolutionpack2,它能帮你解决许多用web页面管理上面的问题,和修正了一些bug。
/ut...rver/cdkey.php ,输入一些需要的信息后,服务器专用CDkey会通过email发给你。linux用户需要把收到的cdkey文件复制到你的系统文件夹中
E 如果你已经知道怎么在注册表里添加CDKEY就跳过这一步到J。
F 点击开始--->运行。在窗口中输入 regedit ,回车。
G 在注册表管理器中,双击"HKEY_LOCALMACHINE"展开它,双击"software"展开它,在它下面找到"Unreal Technology"文件夹.如果这个文件夹已经存在,跳到J。
H 添加一个新的键值。单击"software"文件夹,然后点编辑--->新建--->主键。一个新的看完源码就想辞职文件夹就出现了,有一个高亮的区域让你给它命名,输入Unreal Technology 回车。
I 单击刚才新建的文件夹,点编辑--->新建--->主键。一个新的文件夹出现啦,又有一个高亮的区域让你命名,输入 Install Apps 回车,跳到K。
J 在Unreal Technology Installed apps文件夹下找到"UT"文件夹,如果它存在,跳到L
K 单击"Installed Apps"文件夹,点编辑--->新建--->主键。一个崭新的文件夹诞生啦,有一个高亮的区域让我们命名,输入UT 回车。
L 单击"UT"文件夹,点编辑--->新建--->建值。一个新的文件夹又出现啦,又有一个高亮的区域可以让我们起名字啦。输入 "CDKEY",回车。双击新建立的键值,你就可以编辑它的值。在里面输入你的cdkey序列号。点OK。关掉注册表编辑器。
M 如果你知道怎么用命令行命令进入你的虚幻安装文件夹里的system文件夹,跳到步骤O
N 用命令行建立服务器。我把我的文件安装在UTserver,我用这个举例子,输入cd utserver\system
O 输入ucc server DM-Antalus.ut2
如果一切顺利,一个专用服务器就架设好了,游戏中的地图是DM-Antalus。
默认下面,专用服务器的配置是给internet游戏配置的。这意味着它他尝试和国外的主服务器联系把它加入到主服务器的数据库里,这样你的服务器就可以出现在别人的服务器搜索列表里。目前有两个不同的主服务器在运行,Epic的和Gamespy的。
如果你在机器上已经安装了零售版的UT,那就不必运行Epic mail给你的.reg文件了,否则你注册表里的CDKEY会被改成服务器专用的,这样你自己就不能用这台机器玩了。
如果你是在居域网里建立服务器,并且想禁止UT和主服务器联系那就编辑UT.ini里修改下面的句子(如果找不到这部分,就在最后加后这几行):
[IpDrv.MasterServerUplink]
DoUplink=False
UplinkToGamespy=False
配置服务器
现在你应该知道最基本的架设服务器的方法了,你需要把它配置成你需要的。下面的每个部分都有详细的常见问题解答
System 文件夹里有最重要的三个文件:user.ini runserver.bat和ut.ini 。 user.ini保存了地图循环列表。ut.ini保存了许多其他设置。runserver.bat 保存了启动服务器的设置。Linux用户没有runserver.bat文件,你要把每次都输入一长串命令启动服务器,或者你必须用一个外壳脚本启动服务器。(linux上用脚本启动UT服务器的例子参见munity.com/forums/showthread.php?s=&threadid=)
如果你架设多个服务器,通常你会使用一个共同的ut.ini文件,然后用不同的runserver.bat或者外壳脚本启动不同的服务器,下面是一个runserver.bat的例子:
ucc.exe server DM-Antalus?game=XGame.XDeathmatch?maxplayers=?minplayers=4?timelimit=?fraglimit=
ucc.exe 是服务器的执行文件,"server"告诉uccc下面要架设一个专用服务器。后面的东西是一些参数,设置服务器的游戏规则。第一条是服务器初始游戏的地图名字,这个例子中是DM-Antalus。跟着是游戏类型,例子中是死亡模式。不同的参数用问号分隔。不管你输入多少参数,整个命令都必须在一行中,如果分开来就不管用了。
下面列出ucc后面可以使用的所有参数列表。注意下面有一些参数在运行服务器是是感觉不出有什么变化的,列出它们只是为了列表了完整性:
AccessControl 用来打开高级管理员系统。和UT.ini中[Engine.GameInfo]部分里的AccessConrolClass一行的参数相同。
AdminName=xxxx 网页管理和控制台管理员的名字--参看下面的高级网页管理员部分。
adminpassword=xx 管理员密码。c优秀源码分析至少5位,否则无效。
bAutoNumBots=true/false 设置成true在人数小于地图默认设定的最小数时,会自动加入电脑bot补足。设置成false则不会。
autoadjust=true/false 设置成true,电脑bot会跟具玩家水平自动调整自己的等级。false则不会。
bPlayerMustBeReady=true/false 设置成true打开比赛模式,每局开时前所有玩家要按下鼠标确认后游戏才开始。false则不需要。
Balanceteams=true/false 自动分配玩家平衡队伍。
BlueTeam= 设置蓝队的名字。但是,不要以为你可以改变队伍的名字。However, don't get clever and decide you'll name the blue team Purple or something like that. Many classes in the game refer to this variable to perform team info logic这句话不太好翻自己看吧。总之最好不要加这个参数,加上它会有不良后果。
BlueTeamAI= 特别的参数用来控制蓝队电脑AI。给MOD制作者用来配置自己写的AI给新的游戏模式用的。别碰它。
BlueTeamSymbol= 设置蓝队的队标。最好别设它。
Character=X 玩家用的人物,架服务器时无效。
Class 如果在架服务器的时候使用,在服务器玩的玩家只能用默认的人物皮肤。通常玩家都会用自己喜欢的人物皮肤。所以这个命令毫无用处。
difficulty=x 设置电脑登记,从1到7分别是novice到godlike。
FF=x 友队伤害的百分比。0是关闭,1是% 所以.就是%友队伤害。
fraglimit=x 死亡模式最多杀人数。
game= 游戏类型,可以用:xDeathmatch, xCTFgame,xBombingRun,或者xDoubleDom
gamepassword= 做为客户端加入游戏时需要的密码。
GameRules 设置特别的GameRules类,GameRules是mutator在UT中增加的新类型。通常你不需要用它。几乎所有的mod都会自己动配置它们自己的GameRules。
Gamespeed=x 设置游戏速度,默认是1。最大2
Gamestats=true/false 设置成true会打开统计功能(玩家的游戏资料,如命中率等会上传到主服务器资料库进行统计并参加全世界排名),电脑数量必须设为0才能生效。
goalscore=x CTF,DOM和BR模式里的队伍分数上限。
maxlivers=x last man standing模式,死x后玩家就出局,直到只剩最后一人游戏结束。
maxplayers=x 最大同时游戏人数。
maxspectators=x 最大同时观战者人数。
minplayers=x 最小游戏人数,小于此数用电脑bot补足。
mutator= 在游戏中添加mutator(具体看下面)
numbots=x 设置电脑bot数量。注意打死bot,游戏统计功能就无效了。
Password=xxxx 别的游戏者端加入游戏时需要的密码。
PlayerMustbeready=true/false 在每局开始前等待其他的玩家。
QuickStart 允许游戏在没有人的时候照常进行,当然有电脑bot在玩的时候有效。
RedTeam 参看BlueTeam
RedTeamAI 参看BlueTeamAI
RedTeamSymbol 参看BlueTeamSymbol
SaveGame 继续一个保存过的单人游戏。架服务器时没用。
SpectatorOnly=True/False 客户端选项,允许客户端用命令行指定观察者模式,架服务器时没用。
Team 客户端选项,允许客户端用命令行指定希望加入的队伍。同样架服务器时没用。
translocator=true/false 设置为true允许使用移位器,false相反。
timelimit=x 每局时间限制。
Tournament=true/false 设置成竞技场模式
weaponstay=true/false 武器保留。德品成品 源码
几个例子:
ucc server DM-Antalus?game=XGame.XDeathmatch?minplayers=4 架设死亡模式服务器,初始地图DM-Antalus,最少4人,不足4人用电脑补足。
ucc server CTF-Citadel?game=XGame.xCTFGame?FF=0 架设夺旗模式服务器,初始地图CTF-Citadel,无友队伤害。
ucc server DOM-SunTemple?game=xGame.xDoubleDom?mutator=UnrealGame.MutLowGrav 双重据点模式服务器,初始地图DOM-SunTemple,低重力模式开启。
ucc server BR-Anubis?game=XGame.xBombingRun?weaponstay=true 架设BR模式服务器,初始地图BR-Anubis,武器保留开启。
ucc server DM-Curse3?game=XGame.xTeamGame?fraglimit= 团队死亡模式,初始地图DM-Curse3,杀人数上限.
关于和主服务器的联系
如果你不想你的服务器显示在游戏的服务器搜索列表里,或者你只是在居域网里的服务器,你可以在UT.ini里把下面这些关掉
[IpDrv.MasterserverUplink]
DoUplink=true|false 控制你的服务器是否与internet上的主服务器联系。
UplinkToGamespy=true|false 和DoUplink相似,是决定是否和gamespy服务器建立联系。
SendStats=true|false 是否发送统计信息到主服务器
ServerBehindNAT=true|false 服务器是否在网关后面。
DoLANBroadcast=true|false 设置服务器是否可以在居域网中查找到。一般设true
地图循环和个性化地图列表
默认下游戏会地图会循环出现。 循环顺序在user.ini文件里面控制。 每个游戏类型都有一个部分列出循环的地图。你可以编辑它,去掉你不喜欢的,加上你喜欢的地图。如
[XInterface.MapListDeathMatch]
MapNum=0
Maps=DM-Morbias-2k3
Maps=DM-Spacepir8
Maps=DM-KillingField
Maps=DM-Deck]i[-BETA
Maps=DM-MoonTemple
Maps=DM-Reigncaster
Maps=DM-Golgatha
Maps=DM-Tooth-N-Claw
Maps=DM-Stage1
Maps=DM-Liandri_BETA2
如果你想玩更多的地图,就去网上下载吧。把他们解压缩后把ut2文件放到map文件夹里,utx放到texture文件夹里,以及其他相应文件都放到相应目录里,你就能使用新地图了。
在一个游戏服务器上运行多个游戏类型
你可能会想在一个游戏服务器上运行多个游戏类型,比如 CTF,DOM,BR。可以用以下方法切换地图,举例如下:
比如 我们先开始一个死亡模式游戏在DM-Asbestos地图上。因为现在是死亡模式,游戏结束后UT会检查user.ini中[XInterface.MapListDeathMatch]部分索取下一张地图的名字。它找到了BR-Anubis地图名字,然后就切换到BR模式读取BR-Anubis地图。一但BR-Anubis的游戏结束后,UT会检查 [XInterface.MapListBombingRun]部分,因为已经是BR模式了。它又找到CTF-Citadel地图,然后就换成CTF模式,继续....
[XInterface.MapListCaptureTheFlag]
MapNum=0
Maps=DM-Asbestos?game=XGame.xDeathMatch
[XInterface.MapListDeathMatch]
MapNum=0
Maps=BR-Anubis?game=XGame.xBombingRun
[XInterface.MapListBombingRun]
MapNum=0
Maps=CTF-Citadel?game=XGame.xCTFGame
第三方地图和重定向
如果你使用了不是游戏自带的第三方地图,别人连上服务器就可能花很长时间下载地图同时占用别的游戏者的带宽使游戏不流畅,解决方法可以是把地图文件放到另一个网页服务器上然后告诉客户端自动从那里下载
用 UTcompress(可以在下载)...?的ut.ini 下面的部分重定向下载服务器:
IpDrv.HTTPDownload]
HTTPServer=work filter. 尤其要用到的是nat.
第二:内核要支持tun/tap模块。
我的是debian,自己编译的内核,所以在编译的时候就已经弄好了,由于我从来不用官方的内核,所以我就不知道debian的管方内核是不是已经有了。
不过可以自己看一下。
iptables的支持是不用问的,一般都是内置的。
就是tun/tap设备的支持。 这一点,可以这样看一下:
modprobe tun, lsmod 看一下有没有tun 如果成功,就是支持的, 而且是被编译成了模块,如果没有,可以看一下:/dev/net/,看看是不是存在tun这样一个文件,如果存在就是内核内置的,没有编译成模块,另外, 如果编译成了模块,也要注意是否有这个文件存在。不在的源码如何直接看出话,得自己建了。
mknode /dev/net/tun, 一般现在的发行版都会在你modprobe tun时自动帮你弄好,所以不用担心这个。
好了。我们开工了。
从主站上下载回来qemu的源码:
tar zxvf qemu-0.8.2.tar.gz
cd qemu-0.8.2
gcc -v
这里看一下gcc的版本。
qemu目前只能用gcc3来编译。如果你的是gcc4,
就su - 一下,到root, 然后到/usr/bin/
看一下有没有gcc3
有的话,看看原来的gcc是链接还是一个文件。如果是一个文件,就备份一下,呆会恢复。 如果是链接就不用管它了。看它指向哪一个gcc, 记得呆会儿要恢复过来的。 链接的做法简单了: ln -s gcc-3.3 gcc
就这样的。 备份就更简单了。mv gcc gcc.bak
回到我们刚才的目录里。
运行:
./configure
make
make install
这样就装好了qmeu,
现在我们需要使用kqemu模块来加速了。
下载回来kqemu-1.3.0pre9.tar.gz.
解开后。
tar zxvf kqemu-1.3.0pre9.tar.gz
然后进入到目录里。这个时候有两件事要注意:
1. 需要有你现在所用的内核的内核头文件。
2. gcc的版本要和你的内核编译的gcc版本一致。一搬来说就是你刚才改过的哪个了。恢复回来就好了。
好了。
./configure && make && make install
就好了。
我们已经就装好了所有的软件。
但是有时候我们需要一些设置才能工作。
1. modprobe kqemu
2. 看看/dev/kqemu 字符文件是否存在。
3. /dev/kqemu 文件的权限要是的。
做好这些后就可以开始安装你的虚拟机了,
安装好,我们再设置你的网络
退出你的root, 然后
cd ~ 进入你的home directory
mkdir qemu
cd qemu
qemu-img create win2k.img 2G
建立一个硬盘文件。然后我们就可以在这个上面安装win了。
可以使用iso文件, 也可以使用光盘。
我们这里使用光盘来安装。
qemu -hda win2k.img -cdrom /dev/cdrom -boot d -localtime -m -win2k-hack
这样就可以开始安装了。解释一下这里的选项:
-hda 指定第一个硬盘。
-cdrom 指定你的cdrom 后面的文件可以是一个iso文件
-boot d 从光盘启动,如果从你的硬盘启动,就-boot c, -localtime使用本机的时间。 -m 就是设定内存的大小。默认是, 注意可以设得大一点的内存,但是需要你的/dev/shm足够大。
-win2k-hack, 在安装的时候会有一个问题,它会提示你磁盘空间不够,加上这个参数就可以了。
好了。
安装完成了之后,就可以启动来看一把了。
启动如下:
qemu -hda win2k.img -boot c -localtime -m . 这样就默认使用了kqemu
现在应该也可以上网了,但是注意虚拟机使用的是dhcp的方式来上网的。
而且不能ping通你的本机,我想这个可能是大多数人不想要的,所以下面我们来配置网络。 通过tun/tap, 有点象vmware里的host-only
要配置host-only(tun/tap)这样的网络,我们上面已经讲过了两个要求,现在我们来做更多的事:
1、 建立一个文件 /etc/qemu-ifup
内容很简单:
#!/bin/sh
sudo /sbin/ifconfig $1 ..0.1 netmask ...0
然后chmod a+x /etc/qemu-ifup
注意这里的..0.1是你的tun/tap网卡的地址,一定要注意:不能和你的实际的网卡在同一个网段。 也就是如果tun/tap是..2.0.0/, 那么你的时间网卡就不能在这个网段。
然后写一个小的脚本:
userinit 这个是文件名:
文件内容如下:
#!/bin/bash
case "$1" in
start)
[ ! -e /dev/kqemu ] && mknod -m /dev/kqemu c 0
echo > /proc/sys/dev/rtc/max-user-freq
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s ..0.0/ -j MASQUERADE
;;
stop)
;;
esac
然后:chmod a+x userinit
再:mv userinit /etc/init.d/
再: update-rc.d userinit start 2 3 .
要注意的是这个操作是在debian 下面的做法。
如果是在其他发行版:比如Fedora, 你可以直接写这样的script在你的/etc/rc.local文件里
[ ! -e /dev/kqemu ] && mknod -m /dev/kqemu c 0
echo > /proc/sys/dev/rtc/max-user-freq
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s ..0.0/ -j MASQUERADE
编辑你的/etc/modules. 加上: kqemu (如果你的tun被编译成了模块,也加上tun)
最后还有一点。大家一定注意到了一个问题: 就是qemu-ifup脚本哩使用了sodu, 所以如果想普通用户能用,那么就配一下sudoer.
这个好配极了。 编辑:/etc/sudoers
你的用户名 ALL=(ALL):ALL NOPASSWD:ALL
这样就可以不用输入密码了。
现在我们可以开始启动你的虚拟机了。
要象这样启动:
qemu -hda win2k.img -boot c -localtime -m -net nic,vlan=0 -net tap,vlan=0
如果嫌麻烦,
就干脆写一个一句话的脚本:
#!/bin/bash
qemu -hda win2k.img -boot c -localtime -m -net nic,vlan=0 -net tap,vlan=0
存储为win2k, 加上x的权限,然后放置到/usr/bin, 或者是/usr/local/bin下
以后直接运行win2k, 就可以启动了。
同理也可以安装多个系统,写多个脚本启动。
这样比较的酷
php代码审计学习之函数缺陷
原文链接:
在文件上传代码中,若文件名位于1-区间内,利用PHP的弱类型比较特性,文件可成功上传。例如,数字6被转换为6,因该值位于指定范围内,从而实现上传。
在piwigo2.7.1中,当case为"rate"时,将"rate"与"image_id"传入functions_rate.inc.php文件的"rate_picture"函数。查找"rate"是否存在于配置数组$conf['rate_items']中。只要"rate"值在(0,1,2,3,4,5)范围内,即可以绕过验证,但in_array函数第三参数未设置为true,导致安全漏洞。
CTF中,"stop_hack"用于过滤危险函数。通过获取GET参数ID,使用"stop_hack"进行过滤并拼接到SQL查询语句中。filter_var函数存在默认仅过滤双引号,不过滤单引号的缺陷,除非设置"quotestyle"选项为ENT_QUOTES,才能实现对单引号的过滤。
在anchor-cms源码分析中,关键代码未进行XSS过滤,存在安全风险。
在CTF实例中,利用"__autoload"函数实现任意对象实例化。通过获取get参数并使用"stop_hack"过滤后,拼接到SQL查询语句中,实现任意对象的实例化。
在Shopware 5.3.3的XXE代码分析中,获取"sort"参数并传入"RepositoryInterface"类的"unserialize"方法。通过"LogawareReflectionHelper"类的"unserialize"方法,新建反射类并传入参数,其中类名与参数均由可控的"sort"变量决定。
在CTF中,利用"__autoload"方法的错误使用,实现任意对象实例化。当"__autoload"方法不存在时,使用类似方法实现对象实例化,通过参数传递文件名和信息作为键名。
strpos函数使用不当引发漏洞。在查找特殊符号时,当未找到指定字符时返回"false",若第一个字符找到则返回"0",利用此特性可以进行注入。
DeDecms V5.7SP2中,用户密码重置漏洞允许任意密码修改。通过传入mid查询用户信息,当安全问题和答案不为空且匹配时执行sn函数,若未设置问题答案则安全问题为0,安全答案为null,使密码修改流程失效。
在api.php的buy函数中,使用"=="比较操作符进行弱类型比较,传入7个true值实现绕过。
在escapeshellarg与escapeshellcmd的不当使用中,通过构造字符串绕过转义规则,实现命令注入。
在postcard中,通过filter_var()函数的缺陷,利用双引号嵌套转义空格和单引号双引号重叠,实现数据绕过检测,进行注入。
在CmsEasy 5.5漏洞分析中,通过全局搜索和catid参数,寻找到可控制的配置项,利用eval函数执行恶意代码。
RabbitMetinfo 6.0.0中,未恰当的exit导致程序逻辑异常,导致重装漏洞。
在unserialize反序列化漏洞中,使用不当的unserialize方法,绕过数据类型检查,实现代码执行。
在Typecho-1.1漏洞分析中,通过base解码和反序列化操作实现代码执行,关键步骤涉及session变量的判断和使用。
深入研究preg_replace与代码执行,利用e模式修正符进行代码执行,通过构造特定参数绕过限制。
DM企业建站系统中,存在ENT_NOQUOTES设置导致的注入漏洞。
Turkey Baster实例中,利用addslashes过滤机制的绕过,通过构造特定类名实例化实现目标。
在苹果CMS视频分享程序8.0漏洞分析中,直接拼接SQL语句,导致SQL注入,通过过滤和url解码操作实现注入。
从变量覆盖到getshell的SnowmanDuomiCMS_3.0漏洞分析,通过全局变量覆盖实现shell注入。
PHP反序列化漏洞学习中,讨论ENT_COMPAT、ENT_QUOTES、ENT_NOQUOTES设置,以及ereg、us--Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-Languages等关键概念与实践。
网络安全之文件包含漏洞总结
文件包含漏洞属于代码注入漏洞,引入文件包含函数以减少重复代码编写,通过函数将文件包含进来。简单来说,文件内部包含其他文件或多个文件。 然而,除了常规代码文件,任何后缀文件在被包含时都可能被当作代码执行。因此,若允许用户控制包含文件路径,则很可能包含非预期文件,从而执行非预期代码,导致安全问题。 几乎所有脚本语言提供文件包含功能,但在PHP Web Application中居多,而在JSP、ASP中较少,问题在于语言设计的局限性。后续讨论以PHP为主。 文件包含漏洞分为本地文件包含和远程文件包含。 本地文件包含 (LFI):包含文件内容遵守PHP语法规范,任何扩展名都可被解析。 远程文件包含 (RFI):需要开启PHP远程包含功能(php.ini中设置),允许通过URL加载远程文件。无论扩展名如何,只要符合PHP语法规范,解析器都会执行。 PHP文件包含函数包括include()、include_once()、require()和require_once()。这些函数都能进行文件包含,但作用各异。 漏洞示例代码展示如何快速启动解析php的web server,测试LFI和RFI。 利用任意文件读取:如果内容不符合PHP语法,直接返回文件内容,相当于读取任意文件。 使用PHP封装协议:PHP内建URL风格封装协议,如php://filter,用于读取文件源码。 RFI getshell:开启远程包含功能后,直接加载远程文件即可实现getshell。 LFI+文件上传 getshell:利用LFI漏洞,通过上传包含恶意代码的任意文件,利用文件路径实现getshell。 LFI+日志文件 getshell:将恶意代码写入日志文件,通过文件包含漏洞执行。 LFI+/proc/self/environgetshell:利用CGI方式运行时的请求头信息实现getshell。 LFI+phpinfo getshell:结合LFI和phpinfo()页面,通过POST上传文件实现getshell。 LFI+session getshell:利用控制session内容实现getshell,通过检查session保存路径进行。 绕过指定前缀:使用../回溯符跳转到其他目录。 指定后缀:利用伪协议zip://和phar://绕过限制,或在php版本限制下使用长度截断。 修复建议:过滤特殊字符、关闭远程包含功能、使用open_basedir配置限制文件访问范围、设置文件白名单。 网络安全学习路线图:初期入门,掌握基本技术后,逐渐深入,包括视频学习、白帽子书籍、安全大厂内部资源、面试题、CTF题目、工具包、应急响应等。 网络安全学习资源:免费领取全套G学习资料包,涵盖入门到进阶的所有内容,详情请访问官方链接。CTF篇(攻防世界)
欢迎来到CTF攻防世界的入门指南,深入探索每个挑战的奥秘:挖掘源代码的隐藏线索: 使用F开发者工具或快捷键Ctrl+U,探索flag的秘密所在。
解锁robots协议的智慧: 探索robots.txt文件,flag可能就隐藏在其规则之中。
备忘文件的细微之处: 观察.bak文件格式,洞察隐藏在备份中的flag。
理解Cookie的力量: 通过burp suite的抓包工具,解读cookie.php,破解信息加密。
前端知识的实战应用: 破解disabled属性,展现你的代码技巧,寻找flag。
登陆验证挑战: 挑战暴力破解或直接输入,解锁神秘账户。
php逻辑的逻辑迷宫: 探索构造参数a和b,遵循条件判断的线索。
http请求的新维度: 利用get提交a=1,post提交b=2,理解不同方法的策略。
xff和referer的伪装术: 深入理解这两个技术,按照提示操作,揭示隐藏的网络世界。
在修改IP、抓包的旅程中,你会发现flag正静静等待着你的发现。 体验一句中国菜刀工具的魔力,输入url和密码,解锁flag.txt的神秘面纱。 通过ping测试,确认你的Linux目标系统,然后运用ls命令,一步步接近flag的所在地。 当密码保护的网页不再神秘,解码URL后,flag的光芒将为你照亮前行的道路。 新手web挑战告一段落,但php进阶之旅才刚刚开始。期待在下一次的探索中,与你共同见证更多技术的精彩碰撞。ç½ç»å®å ¨ç¥è¯å¹è®å 容
ç½ç»å®å ¨ç¥è¯å¹è®å 容为信æ¯æ³é²çæ¹å¼ï¼è®¤è¯ç½ç»ä¿¡æ¯å®å ¨çéè¦æ§ã常è§çå ç§ç½ç»å®å ¨é®é¢ï¼
1ãé·å ¥ç½ç»æ¸¸æä¸æ¬²ç½¢ä¸è½ã
2ãç©æ¸¸æä¸ä» è±è´¹ä»ä»¬ææçä¸ä½æ¶é´ã
3ãç½ç»è¿éèçå ¶ä»é·é±ãç½ä¸è天交åæ¯å¤§å¦çå欢çâèç®âï¼ä½å¨èæç¯å¢ä¸äº¤ç½åæ¯ç°å®çæ´»ä¸è¦æ´å è¦æï¼ä»¥é²ä¸å½åéªã
é¢é²æªæ½ï¼
1ãèªå¾éµå®è®¡ç®æºç½ç»ç®¡çåè§å®ï¼ä¸ç©ç½ç»æ¸¸æãä¸æµè§è²æ ä¿¡æ¯ã
2ãç½ä¸è天è¦ä»¥èªå·±çæçæåååå¦ä¸ºä¸»ï¼æ好å°è天æä¸è天ï¼æ´ä¸è½ä¸ç½åè°åä½çº§è¯é¢ã
Pwnhub春季赛相关体验及wp
首次参加Pwnhub举办的大型公开赛,体验令人满意。Pwnhub的声誉名副其实,比赛中只有四个解题,且难度集中在easyrop。比赛前期的宣传充分到位,Pwnhub历来以举办公开月赛闻名,此次公开赛规模空前,奖励丰厚。
比赛题目多样,涵盖了web、misc、crypto、re、pwn等多个方向,还加入了ACM、OCR、以及汇编等不同类型的题目,甚至引入了网页版的传奇游戏,以减轻比赛的枯燥性。题目设计全面,从多个方面考验参赛者的个人能力。
比赛流程流畅,靶机启动迅速,不限制数量,后期取消了靶机时间限制,但在所有靶机都开放在同一IP地址上,端口号可以遍历,加之不是动态flag,可能导致蹭取flag的情况。
首次在CTF比赛中遇到使用Flash游戏的题目,新颖有趣,促使我迅速安装Flash并进入主办方设置的游戏。游戏类题目共有四个小题,最后一个题需要获取服务器的shell,可以视为半个web挑战。
注册账号,创建角色登录游戏,发现公告栏中明确显示了flag,十分友好。下一步是购买题目中的元宝召唤道具,但需要通过抽奖将绑定元宝转化为元宝,再购买。打死召唤出的怪物后,会掉落flag之书1,注意掉落的flag之书可以被其他玩家捡走,谨防被抢,我的flag为flag{ nonono_notmola}。
主办方放出服务器源码,虽然经过修改,但仍能从中找出一些漏洞。从log.php中可以获取生成token的密钥,允许任意用户登录其他账户。在log.php中,理论上存在注入漏洞,但线上复现不成功。web方面的其他漏洞未能发现,获取shell需要对游戏服务器文件进行逆向工程。
web部分考察知识新颖且难度适中。在EzPDFParser中,通过java写的PDF解析器在解析PDF时触发log4j2漏洞,搭建恶意JNDI服务器,修改PDF文件即可触发漏洞。在easyCMS中,通过测试MySQL联通性,利用MySQL读取文件,通过Rogue-MySql-Server实现,使用PHP脚本操作。
在baby_flask中,利用flask模板渲染不会更新的问题,通过生成个模板并在缓存刷新时执行payload,即可获取flag。Misc部分需要使用裸眼3d技巧,借助stegsolve工具将两张图分开,获取flag{ nice_pwnhub}。在其他页面的签到中,通过关于页面的视频中的二维码找到flag。
比赛持续小时,时间较长,但某些类别的题目数量似乎不是很多,如web部分,队伍数量较多,完成三个题后,期待后期上新题,可惜未能如愿。整体体验良好,通过赛题学习到许多知识,期待Pwnhub举办更多类似的公开赛!
CTF-AWD入门手册
网络安全竞赛的赛制AWD,由实战经验丰富的专家构建,模拟真实网络环境,考验参赛者的攻防能力。其实战性、实时性和对抗性是核心特点。以下是关于AWD比赛的一些基本步骤和策略。
开始时,你需要连接分配的靶机,推荐使用xshell+xftp。首要任务是dump网站源码,以备不时之需,通常会用ssh工具并备份两份,一份用D盾扫描,查找可能的后门并修复。
接着,登录数据库备份数据,以防数据丢失时可以快速恢复。如果初始密码简单,要尽快修改以增强防护。
关闭不必要的端口,减少潜在漏洞,同时部署WAF来分析和防御攻击。通过修改php.ini配置,自动添加文件头部保护。准备好后,可以尝试攻击他人的靶机,利用弱口令和自带后门进行查找和控制。
使用Nmap扫描存活主机,对常见的WEB攻击如文件读取、上传、命令执行和SQL注入有所了解,并编写脚本自动化提交flag。同时,注意权限维持,如使用bash反弹shell,创建不死马等,以保持长期控制。
防御方面,要关注flag的位置、检测连接和进程,使用chattr防止关键文件被修改,以及通过流量监控反击攻击。记得,比赛中的知识可能不全面,期待大家的交流和分享。
总的来说,AWD赛制是CTF中的重要环节,本文提供的只是入门指南,实战中还有更多技巧和策略等待你去探索。希望这篇文章对你有所帮助,欢迎参与讨论。