环境搭建
1 | sudo add-apt-repository ppa:openjdk-r/ppa |
设置java环境变量
vim ~/.bashrc
1 | export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 |
Linux日志机制的核心是rsyslog守护进程,该服务负责监听Linux下的日志信息,并把日志信息追加到对应的日志文件中,一般在/var/log目录下。它还可以把日志信息通过网络协议发送到另一台Linux服务器上。
linux上限制进程cpu占用率,可以使用cgroups或者cpulimit,这两种方式经实践能有效限制cpu的占用。cgroups现已集成到大多数linux中,简单配置即可实现各种对进程资源的配置,优先推荐使用该方式,系统资源消耗少,且稳定可靠,配置方式灵活。cpulimit是一个开源工具,github地址为 https://github.com/opsengine/cpulimit。cpulimit利用信号机制暂停和恢复进程的运行,并不直接操作内核。
mac上使用CLION远程调试centos上的C或C++可执行程序,clion使用GDB Remote Debug进行配置。
首先在CentOS上安装必备的软件,包括 gcc, gcc-c++, gdb gdbserver, cmake, make。其中gcc-c++是用来编译cpp, cmake是由于clion使用cmake进行构建,因此CentOS上也要使用cmake来进行构建,保证本地和虚拟机的文件一致,在clion上使用GDB Remote Debug 进行远程调试。
1 | yum install -y gcc gcc-c++ make cmake gdb gdb-gdbserve |
CentOS 6.5 免密登陆问题排查,服务器ssh服务器运行正常,使用用户名和密码登陆服务器正常,但是使用秘钥登陆一直失败,于是先排查sshd配置文件/etc/ssh/sshd_config
,支持秘钥认证登陆
1 | RSAAuthentication yes |
修改文件重启ssh服务后,仍旧不能免密登陆。于是排查各文件和文件夹权限,修改为
1 | drwx------. 3 root root 4096 7月 18 20:22 /root |
还是不行,从客户端ssh -v
显示的信息依旧看不出什么问题,接下来排查ssh服务器日志。
通常django中涉及group by查询多是多个表之间的联合查询,使用外键搭建桥梁。碰到过同表group by查询的案例,发现弄起来还挺麻烦的,故记录下,涨涨见识。
题目来自于2015年强网杯的一道二进制题目shellman, 程序流程很清晰,阅读ida逆向后的代码很容易发现在编辑shellcode时存在溢出,一道很明显的堆溢出二进制漏洞,至于怎么利用,初始想的是利用fastbin attackg攻击,改掉shellcode管理中记录分配的地址,再利用edit功能,修改给出的函数的got地址,改为shellcode地址,后来发现开启的堆栈保护,不能利用,由于堆内容是可控的,结合delete功能,修改free函数的got地址为system地址,system执行堆上的命令,具体细节网上也很多,可参考后文链接,只是网上的都是基于堆溢出+unlink的攻击方式,这里给出堆溢出加fastbin attack的攻击方法, 详情见POC.