御剑——Web后台目录扫描
御剑下载
使用御剑扫描器,可以扫描网站的敏感目录,包括网站后台等。其扫描原理就是爆破,即通过敏感目录的字典去匹配。
扫描线程自定义:用户可根据自身电脑的配置来设置调节扫描线程
集合DIR扫描 ASP ASPX PHP JSP MDB数据库 包含所有网站脚本路径扫描
默认探测200 (也就是扫描的网站真实存在的路径文件)
使用方法
打开软件在域名框输入要扫描的网站地址
在下面可以选择扫描线程以及扫描超时间,还有文件类型等
全部选择好以后就可以点击开始扫描了
等待扫描好以后在下面会出现扫描结果
扫描结果中左侧是扫描到的网站后台目录的地址,右边则是HTTP的响应码,通过访问这些地址可以找到网站后台的登录页面。
尝试访问扫描出来的/dede目录会看到网站后台的登录地址
除此之外,还可以直接访问robots.txt文件来查看被网站管理员禁止爬取的一些网站目录,尝试访问这些目录也会有新的发现。
AWVS漏洞扫描的使用过程
AWVS下载
测试用网站源文件:dedecms5.6.zip
1.构建测试网站
下载dedecms5.6.zip并解压在phpStudy的网站根目录中,并修改端口常规设置
在端口常规设置中奖网站目录设置为刚才解压的dedecms5.6,设置完成后点击应用保存
待服务重启后就可以使用浏览器直接访问127.0.0.1看到页面内容
2.使用AWVS进行扫描
打开AWVS后,会自动弹出来扫描向导,将本地创建的要扫描的127.0.0.1填入URL中
然后其他配置使用默认,一路点击下一步就可以开始扫描
扫描过程会显示扫描过程中获得的信息
等待一段时间后,就能看到扫描完成并可以点击上方的Report生成一份测试报告
可以看到软件扫描出很多潜在的高危和中危漏洞,漏洞具体信息可以在报告里查看
Webshell——一句话木马实操
本次课程需要用到的工具:phpStudy、蚁剑和中国菜刀
1.配置Web环境
打开phpStudy启动服务,使得界面的运行状态全部变成绿色,此时可以在浏览器使用127.0.0.1访问Web服务
2.创建木马文件
在phpStudy的界面点击其他选项菜单进入网站的根目录
在根目录中新建一个PHP的一句话木马文件,命名为hack.php,里面添加木马语句
1<?php @eval($_POST['aaa']);?>
保存后退出编辑即可
3.利用Webshell
1)使用HackBar插件
在浏览器中安装HackBar插件,按F12打开开发者工具,访问http://127.0.0.1/hack.php界面不会显示任何东西
然后点开开发者工具中的HackBar选项卡,将地址栏中的地址粘贴在下面,选中Post Data选项在下面填入aaa=system('ipconfig');,其中这里的aaa是上面在创建木马文件的时候POST里面的参数
填写完毕后点击Execution就可以通过木马执行服务器中的命令,就可以直接在Web页面看到命令执行后的结果
2) ...
Nmap的几种常见扫描方式
Nmap扫描原理:首先会发送ICMP数据包确定探测主机是否存在(存活扫描),再探测主机存在的端口
1.Intense scan(强扫描)
1nmap -T4 -A -v [ip_addr]
-T4:第4强度的扫描(同时扫描端口数的强度)
-A:探测目标的详细信息
-v:输出探测过程中的详细信息
2.Intense scan plus UDP(强扫描+UDP)
1nmap -sS -sU -T4 -A -v [ip_addr]
-sS:(send SYN)TCP SYN探测扫描
-sU:探测UDP
3.Intense scan, all TCP ports(强扫描全部TCP端口)
1nmap -p 1-65535 -T4 -A -v [ip_addr]
-p:探测的端口号
4.Intense scan, no ping
1nmap -T4 -A -v -Pn [ip_addr]
-Pn:扫描之前不ping远程主机(模拟成TCP连接探测主机是否存活)
5.Ping scan
1nmap -sn [ip_addr]
-sn:只探测存活(与上面的-Pn不能同时使用)
6.Quick scan( ...
BurpSuite的4种常用功能使用
BurpSuite下载
包拦截
1.设置代理
首先设置浏览器的网络代理为HTTP:127.0.0.1:8080
也可以下载使用Firefox的代理插件——SwitchyOmega对浏览器的代理进行管理
2.配置BurpSuite
在Proxy-Options中添加127.0.0.1:8080代理监听
在Proxy-Intercept中打开拦截
3.抓包
然后刷新重新加载要抓包的网页,就可以在Proxy-Intercept中看到抓取到的请求包
可以看到数据包中隐藏的flag,解码后得到flag{2333_surprise}
然后点击Forword可以看到另一个flag:flag{[email protected]}
4.分析(抓回包)
在访问192.168.47.99网站的时候抓取网站的响应包,在抓取到请求包后右键Do intercept->Response to this request
设置抓取响应包后点击Forward
可以看到网站响应返回的数据包
其中会有一个自动刷新的设置,进入到网站0.1s后就会刷新到3. ...
WEB安全基础知识及综述
ξ1-Web安全综述
WEB系统架构
新的安全问题
SQL注入
存储型XSS
文件上传
……
OWASP TOP10
注入
失效的身份认证和会话管理
XML外部实体(XXE)
失效的访问控制
安全配置错误
跨站脚本(XSS)
不安全的反序列化
使用含有已知漏洞的组件
不足的日志记录和监控
ξ2-Web安全基础知识
HTTP协议(超文本传输协议)
HTTP特点
HTTP协议建立在TCP协议基础之上
HTTP协议是无状态的
URL
统一资源定位符,从协议开始,可以唯一确定资源地址的字符串
URI
统一资源标识符,在一定约束条件下可以唯一确定资源地址的字符串(URL中除去域名和端口部分)
HTTP方法
GET:获取资源
获取请求页面的指定消息
请求参数在请求头中
请求长度有限制
eg:GET /index.php?id=1 HTTP/1.1
POST:传输实体主体
获取请求页面的指定消息
请求参数在请求正文
eg:POST /index.php HTTP/1.1
HEAD:返回报文首部
OPTIONS:询问支持的方法
PU ...
使用Hexo+GitHub搭建自己的个人博客
由于自己之前在GitHub白女票的服务器到期了(再用下去就要自己掏腰包了,学生党受不起o(╥﹏╥)o),所以今天在此将自己的博客移植到永久免费的GitHub中,作为GitHub Pages来继续完成它的使命~(这也算是给自己填坑吧)
基础的hexo安装与美化这里就不再赘述,可以翻看我之前的文章:
使用Hexo+Nginx+Namecheap+DigitalOcean搭建个人博客网站
Hexo进阶——主题和功能的完善
下面就开始进入正片~~
创建GitHub仓库
首先咱们需要创建一个GitHub仓库,当然没有GitHub账号需要先注册
注册完之后点页面右上角创建新的GitHub仓库
输入自己项目仓库的名字,我这里是baymrx(注意这里必须使用GitHub的用户名,否则不能成功),记得后面一定要加.github.io后缀,仓库类型设置为共有仓库,下面的REDEME初始化也要勾选
配置GitHub Pages
信息填写完成后点击创建,创建完成后进入自己的仓库页面,点击Settings,往下拉到底可以看到GitHub Pages模块,这里可以选择博客的默认主题(当然没啥用),如果已经申请 ...
PWN刷题记录——guess_num
guess_num:[下载地址]
题目分析
拿到题目先跑一下康一康
是一个猜数的游戏,随便输几次数跑一下,不料第二回合就GG了
丢到IDA里打探一下
通过分析源代码发现程序会随机产生10个随机数分布在10个回合中,只要每个回合的数字都猜对就可以进入子函数直接获取flag
对程序进行安全机制检查发现,程序所有保护都开启了,咋办?有点慌、、
由于有了堆栈保护,所以程序不能通过栈溢出返回到sub_C3E()函数,这条路子就、、死心吧,只能另寻他路
既然不能控制程序返回地址,那么我们考虑一下是不是可以控制一下栈上的数据,比如控制用来产生随机数种子得到srand函数。我们知道,srand函数所产生的随机种子是由seed的值确定的,seed一样,rand函数产生的伪随机数值也会一样。
先看一下程序中的seed是怎么来的
看样子是没法直接得知seed的具体值,那么就只能直接开干了
在IDA里面查看main函数的栈空间可以得知
程序中的变量v7即栈空间中的var_30,它在栈中到变量seed的偏移量为0x20
利用思路
由于程序中gets函数没有对输入大小进行限制,所以我们可以利用ge ...
PWN刷题记录——2016 AliCTF-vss
2016 AliCTF : vss [下载地址]
题目分析
首先检查一下程序保护
只开启了NX保护,而且程序是64位的
运行一下
发现需要密码……直接丢到IDA里面查看,加载用了一段时间,程序有一丢丢大
打开之后也直接懵逼了,程序不像是我们之前所见到的那样,而是包含了大量的函数,猜测文件可能是静态编译,把所有用到的库函数都放在了一个文件里面进行编译
在linux里面用file检查,果然是静态链接
在IDA里面有一个start函数,猜测是程序开始的地方,但是一阵乱点之后也没找到程序执行的内容在哪,想起IDA可以通过字符串查询,Ctrl+T搜索Password:
终于找到了程序真正开始的地方,可以对一些函数功能进行猜测然后对其命名,方便后边的分析查看。根据程序的流程可以猜测sub_408800是puts函数,sub_437EA0是read函数,在这里最大可以读取1024字节的数据,数据被读入到v1中,可以将其命名为str。str的缓冲区有400h=1024个字节,所以这里并不会产生溢出漏洞
我们进入到sub_40108E继续查看
看到sub_400330函数的形式比较熟悉 ...
PWN刷题记录——Defcon 2015 Qualifier: R0pbaby
题目来源CTF-Wiki练习题,下载链接:R0pbaby
题目分解
先来检查一下程序保护
64位程序,开启了堆栈不可执行,地址随机化还有一个我们先前没有见过的FORTIFY,谷歌简单查了一下知道它用于检查是否存在缓冲区溢出错误,但只是很轻微的检查,所以我们忽略不计。
先来运行一下看一下它的面貌
程序具有四个选项,其中前两个选项可以输出libc的地址和libc中某一函数的地址,第三个选项可以把数据拷贝到栈上而且给出了我们所能输入的最大值1024,由此盲猜选项三应该存在栈溢出,丢到IDA里面看一看
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111__int64 __fastcall ma ...