CTF基础知识 && AWD红蓝对抗


AWD

备份源码,修改账户密码,查看是否有预留后门然后删掉

修改mysql密码

格式:mysqladmin -u用户名 -p旧密码 password 新密码 
例子:mysqladmin -uroot -p 123456 password 123

MySQL 完全备份和恢复

备份某—个数据库: mysqldump -u Username -p Password 数据库名 > /root/XXX.bak

会将指定的数据库备份至roo家目录下,文件名为XXX.bak

恢复: mysql -u Username -p Password 数据库名 < /root/XXX.bak

一句话木马

<?php @eval($_REQUEST['pass']); ?>      <%eval request("pass")%>         <?php @eval($_POST['c']); ?>

权限维持:1.不死马, 2. nc反弹shell  nc -lp 9999

ps auxww|grep shell.php 找到pid后杀掉进程就可以

修改ssh文件 vim /etc/ssh/sshd_config PermitRootLogin no

最后面加AllowUsers liu liu1

linux修改文件所有者和文件所在组

chgrp  用户名    文件名  -R

chown 用户名   文件名  -R

chmod -R 777 /var/home/userid/cc

1查看端口

netstat -tunpl        netstat -tunpl | grep 23 (查看是否打开23端口)

2. 查看端口对应的应用程序

lsof -i:xxx              查进程 ps aux

3. 关闭端口

iptable

sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"
sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"   

kill

Ps -aux

kill -9 PID" (PID:进程号)

sudo /etc/init.d/apache2 restart

.防御策略
命令注入漏洞
a)例 str1 = $_POST[‘cmd’],在str1 前连接 字符”#”注释字符,str1 = “#”. $_POST[‘cmd’]
b)        
上传文件漏洞
a)注释上传写入代码.
b)        
文件包含漏洞
a)       修改php.ini文件
allow_url_fopen    on
allow_url_include   on
                 修改为
allow_url_fopen    off
allow_url_include   off
b)        
远程代码执行漏洞
a)       注释危险函数:system() exec_shell() eval() assert() create_function() preg_replace() file_put_contents()
b)        
缓冲区溢出漏洞
a)       目前参考”7.Linux权限漏洞”,进行防御.
b)        
系统后门漏洞
a)       直接删除后门程序
b) “Ps –ef|grep bash”命令查看是否有bash后门程序
c) “ss -ltnp”命令查看,是否有后门程序监听端口
d) 从上两个步骤找到该程序pid,用”kill pid”命令结束后门bash程序
e)       在web网站目录下,查看文件内容找到webshell或一句话木马,进行删除文件或注释代码
f)         
Linux权限漏洞
a)“PS –ef|grep httpd”命令查看 Apache服务是否是root执行该服务,若是修改/etc/httpd/httpd.conf 文件找到”user” “group”字段后加上apache apache,重启httpd服务。使Apache服务是apache用户执行该服务.
b)       修改/bin/cat /bin/echo等关键命令二进制文件,改成其名称,让其攻击者无法利用bash读取flag文件内容.                                   
   1.防XSS

利用strip_tags()函数过滤字符串中的 HTML 标签;

利用htmlspecialchars()函数对敏感字符进行转换。

 $message = mysql_real_escape_string($message);


作为body文本输出,作为html标签的属性输出:
比如:${username}



此时的转义规则如下:
< 转成 <
> 转成 >
& 转成 &
" 转成 "
' 转成 '
javascript事件

除了上面的那些转义之外,还要附加上下面的转义:
\ 转成 \\
/ 转成 \/
; 转成 ;(全角;)
e) URL属性
如果