什么是SQL注入?

攻击者在HTTP请求中注入恶意的SQL代码,服务器使用参数构建SQL语句时,恶意的SQL语句被一起加载进数据库中执行,并返回给前端页面。

Mysql 5.0版本以上存在informantion_schema(tables,colums);databases,version 等数据库名称,版本,表名,字段名,进行注入

常用数据库端口 mysql:3306 mssql:1433 oracle:1521

SQL注入种类: 1.按照注入点数据类型分:数字型,字符型 2.按照数据传参方式:get型、post型、header头部注入(UA、COOKIE) 3.按照执行效果:union注入、布尔盲注、时间盲注、报错注入、二次注入、宽字节注入 (盲注是指在进行SQL注入时,页面没有将SQL语句的执行结果回显,只能通过服务返回的内容变化,响应时间来判断时候存在SQL注入和利用)

使用SQLmap进行盲注 sqlmap -u “url” --technique B

报错注入 extractvalue() udataxml()通过路径参数报错注入 ‘~’的16进制0x7e

二次注入 存入数据库的数据虽然会加/转义,但是写入的时候/会去掉,当取出数据库的内容时,一般都会被当做可信数据,利用这个特性进行sql注入

宽字节注入 主要利用mysql的特性,在使用GBK编码时,会人为两个字符是一个汉字,在转义单引号的时候0x27,前加入/,0x5c。我们可以利用GBK编码df5c组成一个汉字从而将单引号逃逸出来

mysql写文件 'string' into outfile 'path'

Mysql注入绕过常见方法

  1. 大小写
  2. 双写
  3. 编码
  4. /!/注释逃逸
  5. 垃圾数据填充

Mysql udf 提权 利用SQLmap中clock.py脚本对msqludf_sys.dll 解码提交到目标机器的plugin文件夹下。运行mysql函数会以系统权限来执行

sql注入防护方式

  1. SQL预编译,SQL引擎会预先进行语法分析,产生语法树,之后无论输入什么,都不会影响sql语句的执行
  2. 严格限制参数类型,只能为数字类型int
  3. 黑白名单
  4. 转义特殊字符
  5. WAF

XSS

跨站脚本攻击,是指攻击者通过web页面写入恶意脚本通常为vb和js,造成用户在浏览页面时,控制用户浏览器进行操作的攻击方式

分类: 1.反射型 2.DOM型 3.持久型

XSS可以做什么 1.键盘记录 2.钓鱼 3.cookie搜集 4.屏幕截图

xss绕过 1.大小写 2.双写 3.其他标签

xss防护 1.html的实体化编码 2.黑白名单 3.http-only(限制cookie劫持) 4.csp内容安全策略(content-security-policy)


文件上传

用户通过上传恶意文件,上传的web脚本会被当做web内容进行解析,从而对网站造成危害

一句话木马

<?PHP EVAL(@$_POST['MUMA'])?>

文件上传的绕过 1.黑名单绕过 (文件后缀php5、phps、phtml) 2.白名单绕过(修改content-type) 3.大小写 4.双写 5.windows系统特殊方法,例如:点绕过;空格绕过;::$DATA绕过 6.对htaccess修改绕过 7.修改文件头信息 8.00截断(00是结束标识) 9.配合文件包含漏洞 file=木马路径

配合中间件解析漏洞 1.IIS的asp网页,不解释分号之后的内容 2.Nginx,当文件不存在时向前解析 3.Apache,多后缀时不存在就向前解析

XSS防护 1.上传目录的权限限制,不可执行 2.黑白名单 3.改写文件名,文件路径 4.WAF


CSRF(跨站请求伪造)

攻击者用过跨站请求(利用url短网站诱导点击),以合法的用户身份进非法操作,简单来说盗用你的身份信息,向第三方网站发送恶意请求,包括利用你的身份发邮件,发短信,交易转账等

CSRF攻击成功需要具备的三个条件 1.一个功能操作(修改密码等) 2.基于cookie的会话处理 3.没有不可预测的参数

CSRF防护 1.token验证(token无状态,cookie时间长,有状态) 2.加referer头(http请求的来源地址) 3.关键位置加入验证码


应急响应流程

1.收集信息(中毒主机信息,样本取证等) 2.判断类型(判断是何种攻击,dos,勒索病毒,挖矿xmrig程序等) 3.抑制处置(断网,封账号) 4.深入分析(日志、进程、启动项等进行根除) D盾对webshell分析 IIS日志 windows日志/服务/日志 linux日志/var/log 5.产出报告(整理并完整输出安全事件报告)


溯源

分类 对外溯源:确认攻击者的真实身份 对内溯源:确认攻击者的行为

对内溯源 对内主要是溯源攻击者的行为,如果攻击者已经攻击成功了,攻击者肯定要上传攻击工具的,看一下他上传的什么工具。第一时间对其进行阻断,把shell先暂时干掉。干掉的同时,再去看外部日志Apache日志。通过攻击者上传shell的时间和攻击IP,去索引搜索整个日志,然后看攻击者做了哪些请求,如果是Get请求可以看对方请求的一个资源、地址以及请求的内容;如果说是Post请求,攻击者应该是做了一些上传的操作,但是具体上传了什么东西,是不知道的,只能看到一个上传数据包, 不过可以通过防火墙去下载该完整的数据包,进行分析。 再之后,就进入了应急响应的一个流程。 对外溯源 通过监测设备上面确定攻击IP,确定是攻击者发起的请求,那么就通过这个IP确定域名(微步在线),通过该域名查找到关于攻击者注册域名的一些相关信息。通常会有QQ账号、QQ邮箱等个人真实信息,再借助这些有效信息去社工。


渗透一个网站的思路

1.信息收集(真实ip,系统类型,版本信息,开发端口,WAF等) Nmap -A -T4 url 2.whois信息(姓名,电话反查,邮箱,备案,历史解析等) 3.网站指纹识别 云悉 4.子域名 subdomainbrute、goby、御剑 5.黑暗引擎 fafa、shadon 6.扫描器扫描 xray被动扫描,各种扫描器主主动扫描 7.利用漏洞拿到webshell,提权 8.清除日志,总结报告