Skip to content

Commit 98c087c

Browse files
committed
update options with sqlmap1.3.4#pip
1 parent de91fd7 commit 98c087c

File tree

5 files changed

+54
-21
lines changed

5 files changed

+54
-21
lines changed

README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,24 @@ sqlmap ui, using PyGObject(gtk+3)
88
#### INSTALLATION
99

1010
1. **REQUIRED**
11-
- python3.5+
11+
- GTK+3.22(which is hard to install at win), python3.5+
1212
- pygobject: `pip3 install PyGObject` or `apt-get install python3-gi`
13-
- [sqlmap](https://github.com/sqlmapproject/sqlmap): `pip2 install sqlmap`
13+
- [sqlmap](https://github.com/sqlmapproject/sqlmap): `pip2 install sqlmap` #hope sqlmap ports to python3 in future...
1414
2. **GET**
1515
- `git clone https://github.com/needle-wang/sqlmap-ui.git`
1616
3. **RUN**
1717
- `./sqlmap_ui.py`
1818

1919
#### TODO
20-
1. UI重新排版(ok)
21-
2. 分离并完善tooltip等提示信息(ok)
22-
3. 细节优化(margin, padding啥的)(ok)
20+
1. ~~UI重新排版~~
21+
2. ~~分离并完善tooltip等提示信息~~
22+
3. ~~细节优化(margin, padding啥的)~~
2323
4. 打从加了filechooserbutton起, 启动就慢了一倍:
2424
根据line_profiler输出: gtk.FileChooserButton()有性能问题!
25-
5. 重构(ok), 还能再优化嘛?比如handlers文件(yield)
26-
6. 添加session功能(v0.2.2, ok)
27-
7. 重构成MVC模式(结构改动很大~, v0.3, ok)
28-
8. 写好(linux和win下的)安装及使用指南
29-
9. 将管道流集成到UI里?(难度过大, 放弃)
25+
5. ~~重构~~
26+
6. ~~添加session功能(v0.2.2)~~
27+
7. ~~重构成MVC模式(结构改动很大~, v0.3)~~
28+
8. ~~将管道流集成到UI里(难度过大, 放弃)~~
3029

3130
#### ABOUT
3231
1. branch: mvc: V0.3

handlers.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,9 @@ def _collect_opts(self):
185185
m._page1_general_parse_errors_ckbtn),
186186
self._get_text_only_ckbtn("--cleanup",
187187
m._page1_misc_cleanup_ckbtn),
188+
self._get_text_from_entry("--preprocess=",
189+
m._page1_general_preprocess_ckbtn,
190+
m._page1_general_preprocess_entry),
188191
self._get_text_from_entry("--crawl=",
189192
m._page1_general_crawl_ckbtn,
190193
m._page1_general_crawl_entry),
@@ -241,6 +244,8 @@ def _collect_opts(self):
241244
m._page1_misc_smart_ckbtn),
242245
self._get_text_only_ckbtn("--list-tampers",
243246
m._page1_misc_list_tampers_ckbtn),
247+
self._get_text_only_ckbtn("--sqlmap-shell",
248+
m._page1_misc_sqlmap_shell_ckbtn),
244249
self._get_text_only_ckbtn("--disable-coloring",
245250
m._page1_misc_disable_color_ckbtn),
246251
self._get_text_only_ckbtn("--offline",
@@ -358,6 +363,8 @@ def _collect_opts(self):
358363
m._dump_area_search_ckbtn),
359364
self._get_text_only_ckbtn("--exclude-sysdb",
360365
m._dump_area_no_sys_db_ckbtn),
366+
self._get_text_only_ckbtn("--repair",
367+
m._dump_area_repair_ckbtn),
361368
self._get_text_from_entry("--start=",
362369
m._limit_area_start_ckbtn,
363370
m._limit_area_start_entry, None),
@@ -394,6 +401,8 @@ def _collect_opts(self):
394401
self._get_text_from_entry("--sql-query=",
395402
m._runsql_area_sql_query_ckbtn,
396403
m._runsql_area_sql_query_entry),
404+
self._get_text_only_ckbtn("--sql-shell",
405+
m._runsql_area_sql_shell_ckbtn),
397406
self._get_text_from_entry("--sql-file=",
398407
m._runsql_area_sql_file_ckbtn,
399408
m._runsql_area_sql_file_entry),
@@ -467,6 +476,8 @@ def _collect_opts(self):
467476
m._request_area_skip_urlencode_ckbtn),
468477
self._get_text_only_ckbtn("--force-ssl",
469478
m._request_area_force_ssl_ckbtn),
479+
self._get_text_only_ckbtn("--chunked",
480+
m._request_area_chunked_ckbtn),
470481
self._get_text_only_ckbtn("--hpp",
471482
m._request_area_hpp_ckbtn),
472483
self._get_text_from_entry("--delay=",

model.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ def __init__(self):
137137
self._request_area_ignore_code_entry = NumberEntry()
138138
self._request_area_skip_urlencode_ckbtn = cb('payload不使用url编码')
139139
self._request_area_force_ssl_ckbtn = cb('强制使用HTTPS')
140+
self._request_area_chunked_ckbtn = cb('用Chunked编码发送POST请求')
140141
self._request_area_hpp_ckbtn = cb('使用HTTP参数污染')
141142
self._request_area_delay_ckbtn = cb('请求间隔(秒)')
142143
self._request_area_delay_entry = NumberEntry()
@@ -187,6 +188,7 @@ def __init__(self):
187188
self._dump_area_dump_all_ckbtn = cb('全部dump(拖库)')
188189
self._dump_area_search_ckbtn = cb('搜索')
189190
self._dump_area_no_sys_db_ckbtn = cb('排除系统库')
191+
self._dump_area_repair_ckbtn = cb('重新获取有未知符号(?)的条目')
190192
# limit(dump时的限制)
191193
self._limit_area_start_ckbtn = cb('始于第')
192194
self._limit_area_start_entry = NumberEntry()
@@ -215,6 +217,7 @@ def __init__(self):
215217
# 执行SQL语句
216218
self._runsql_area_sql_query_ckbtn = cb('SQL语句:')
217219
self._runsql_area_sql_query_entry = et()
220+
self._runsql_area_sql_shell_ckbtn = cb('打开个SQL交互shell')
218221
self._runsql_area_sql_file_ckbtn = cb('本地SQL文件:')
219222
self._runsql_area_sql_file_entry = FileEntry()
220223
# 暴破表名/列名
@@ -267,6 +270,8 @@ def __init__(self):
267270
self._page1_general_forms_ckbtn = cb('解析和测试目标url内的表单')
268271
self._page1_general_parse_errors_ckbtn = cb('解析并显示DB错误信息')
269272
self._page1_misc_cleanup_ckbtn = cb('清理DBMS中sqlmap产生的UDF和表')
273+
self._page1_general_preprocess_ckbtn = cb('指定预处理响应数据的脚本')
274+
self._page1_general_preprocess_entry = et()
270275
self._page1_general_crawl_ckbtn = cb('爬网站(的层级/深度)')
271276
self._page1_general_crawl_entry = NumberEntry()
272277
self._page1_general_crawl_exclude_ckbtn = cb('爬站时排除(正则)页面')
@@ -304,6 +309,7 @@ def __init__(self):
304309
self._page1_misc_skip_waf_ckbtn = cb('跳过对WAF/IPS保护的启发式侦测')
305310
self._page1_misc_smart_ckbtn = cb('只对明显注入点进行详细测试')
306311
self._page1_misc_list_tampers_ckbtn = cb('显示可用的tamper脚本列表')
312+
self._page1_misc_sqlmap_shell_ckbtn = cb('打开sqlmap交互shell')
307313
self._page1_misc_disable_color_ckbtn = cb('禁用终端输出的颜色')
308314
self._page1_misc_offline_ckbtn = cb('离线模式(只使用保存的会话数据)')
309315
self._page1_misc_mobile_ckbtn = cb('模拟手机请求')

sqlmap_ui.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@ def _build_page1_other_misc(self):
288288
_row2.pack_start(m._page1_misc_skip_waf_ckbtn, False, True, 5)
289289
_row2.pack_start(m._page1_misc_smart_ckbtn, False, True, 5)
290290
_row2.pack_start(m._page1_misc_list_tampers_ckbtn, False, True, 5)
291+
_row2.pack_start(m._page1_misc_sqlmap_shell_ckbtn, False, True, 5)
291292
_row2.pack_start(m._page1_misc_disable_color_ckbtn, False, True, 5)
292293

293294
_row3 = g.Box()
@@ -340,6 +341,8 @@ def _build_page1_other_general(self):
340341
_row2.pack_start(m._page1_general_forms_ckbtn, False, True, 5)
341342
_row2.pack_start(m._page1_general_parse_errors_ckbtn, False, True, 5)
342343
_row2.pack_start(m._page1_misc_cleanup_ckbtn, False, True, 5)
344+
_row2.pack_start(m._page1_general_preprocess_ckbtn, False, True, 5)
345+
_row2.pack_start(m._page1_general_preprocess_entry, False, True, 5)
343346

344347
_row3 = g.Box()
345348
_row3.pack_start(m._page1_general_crawl_ckbtn, False, True, 5)
@@ -818,6 +821,7 @@ def _build_page1_request_custom(self):
818821
_row1.pack_start(m._request_area_ignore_code_entry, True, True, 5)
819822
_row1.pack_start(m._request_area_skip_urlencode_ckbtn, False, True, 5)
820823
_row1.pack_start(m._request_area_force_ssl_ckbtn, False, True, 5)
824+
_row1.pack_start(m._request_area_chunked_ckbtn, False, True, 5)
821825
_row1.pack_start(m._request_area_hpp_ckbtn, False, True, 5)
822826

823827
_row2 = g.Box()
@@ -1018,6 +1022,7 @@ def _build_page1_enumeration_runsql(self):
10181022
m._runsql_area_sql_file_entry
10191023
)
10201024

1025+
_row2.pack_start(m._runsql_area_sql_shell_ckbtn, False, True, 10)
10211026
_row2.pack_start(m._runsql_area_sql_file_ckbtn, False, True, 10)
10221027
_row2.pack_start(m._runsql_area_sql_file_entry, True, True, 0)
10231028
_row2.pack_start(self._runsql_area_sql_file_chooser, False, True, 10)
@@ -1128,6 +1133,7 @@ def _build_page1_enumeration_dump(self):
11281133
_dump_area_opts_cols.add(m._dump_area_dump_all_ckbtn)
11291134
_dump_area_opts_cols.add(m._dump_area_search_ckbtn)
11301135
_dump_area_opts_cols.add(m._dump_area_no_sys_db_ckbtn)
1136+
_dump_area_opts_cols.add(m._dump_area_repair_ckbtn)
11311137

11321138
_dump_area_opts.pack_start(_dump_area_opts_cols, False, True, 10)
11331139

@@ -1397,6 +1403,7 @@ def _build_page4(self):
13971403
self.page4.set_border_width(10)
13981404

13991405
_about_str = '''
1406+
update at 2019-04-20 18:18:13
14001407
1. VERSION: 0.3
14011408
2018年 11月 10日 星期六 16:17:44 CST
14021409
required: python3.5+, python3-gi, sqlmap(require: python2.6+)

tooltips.py

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@
77
class Widget_Mesg(object):
88
def __init__(self, w, m):
99
'''
10-
w: sqlmap_m.UI_Window
11-
w: model.Model
10+
w: sqlmap_ui.UI_Window
11+
m: model.Model
1212
'''
1313
self.w = w
14-
self.m = m
1514

16-
self.set_all_tooltips()
17-
self.set_all_placeholders()
18-
19-
def set_all_placeholders(self):
20-
m = self.m
15+
self.set_all_tooltips(m)
16+
self.set_all_placeholders(m)
2117

18+
def set_all_placeholders(self, m):
19+
'''
20+
m: model.Model
21+
'''
2222
# 0.target区
2323
self._set_placeholder('必填项, 从 目标url/burp日志/HTTP请求... 任选一项',
2424
m._url_combobox.get_child())
@@ -87,13 +87,12 @@ def set_all_placeholders(self):
8787
self._set_placeholder('/var/www',
8888
m._page1_misc_web_root_entry)
8989

90-
def set_all_tooltips(self):
90+
def set_all_tooltips(self, m):
9191
'''
92+
m: model.Model
9293
使用gtk3.24时, 有scale组件的行内的tooltip会flicker(闪烁)(GTK3的bug!)
9394
只能禁用了
9495
'''
95-
m = self.m
96-
9796
# 0.target区
9897
self._set_tooltip('必填项, 从 目标url/burp日志/HTTP请求... 任选一项',
9998
m._url_combobox)
@@ -280,6 +279,8 @@ def set_all_tooltips(self):
280279
m._request_area_skip_urlencode_ckbtn)
281280
self._set_tooltip('--force-ssl',
282281
m._request_area_force_ssl_ckbtn)
282+
self._set_tooltip('--chunked',
283+
m._request_area_chunked_ckbtn)
283284
self._set_tooltip('--hpp',
284285
m._request_area_hpp_ckbtn)
285286
self._set_tooltip('隔几秒发送一个HTTP请求',
@@ -375,6 +376,8 @@ def set_all_tooltips(self):
375376
m._dump_area_search_ckbtn)
376377
self._set_tooltip('--exclude-sysdb',
377378
m._dump_area_no_sys_db_ckbtn)
379+
self._set_tooltip('--repair',
380+
m._dump_area_repair_ckbtn)
378381
self._set_tooltip('--start=',
379382
m._limit_area_start_ckbtn,
380383
m._limit_area_start_entry)
@@ -411,6 +414,8 @@ def set_all_tooltips(self):
411414
self._set_tooltip('--sql-query=QUERY',
412415
m._runsql_area_sql_query_ckbtn,
413416
m._runsql_area_sql_query_entry)
417+
self._set_tooltip('--sql-shell',
418+
m._runsql_area_sql_shell_ckbtn)
414419
self._set_tooltip('--sql-file=SQLFILE',
415420
m._runsql_area_sql_file_ckbtn,
416421
m._runsql_area_sql_file_entry)
@@ -485,6 +490,9 @@ def set_all_tooltips(self):
485490
m._page1_general_parse_errors_ckbtn)
486491
self._set_tooltip('--cleanup',
487492
m._page1_misc_cleanup_ckbtn)
493+
self._set_tooltip('--preprocess=',
494+
m._page1_general_preprocess_ckbtn,
495+
m._page1_general_preprocess_entry)
488496
self._set_tooltip('--crawl=',
489497
m._page1_general_crawl_ckbtn,
490498
m._page1_general_crawl_entry)
@@ -541,6 +549,8 @@ def set_all_tooltips(self):
541549
m._page1_misc_smart_ckbtn)
542550
self._set_tooltip('--list-tampers',
543551
m._page1_misc_list_tampers_ckbtn)
552+
self._set_tooltip('--sqlmap-shell',
553+
m._page1_misc_sqlmap_shell_ckbtn)
544554
self._set_tooltip('--disable-coloring',
545555
m._page1_misc_disable_color_ckbtn)
546556
self._set_tooltip('--offline',

0 commit comments

Comments
 (0)